KeyboardKit 8.8.7 - important patch
This blog seldom mentions patch updates, but KeyboardKit 8.8.7 is special. It makes the URL action work as before, with iOS 18 support, improves dictation, adds support for auto-ignoring unwanted autocorrections, and adds some important experiments for the next keyboard button.
Urls - back to normal
This version re-adds the old way of opening URLs, but makes it work with iOS 18. This means that .url
actions are once again rendered as full-gesture buttons.
Dictation - better than ever
This version makes the dictation service use a SwiftUI OpenURLAction
to return to the previous app, since a keyboard action handler can’t resolve a proper controller within the main app.
The service also handles locale syncronizations better, and will also logs warnings when you seems to have an invalid configuration. It also returns to the previous app much more reliably than before.
Autocorrect - smarter than ever
This version also adds support for auto-ignoring words that have an autocorrection, when pressing backspace. This will improve the typing experience a great deal.
The AutocompleteContext
has a new isAutoIgnoreEnabled
property that can be used to control this behavior, and the standard action handler has new functions for controlling this experience.
Next Keyboard Button - experiment time!
The Keyboard.NextKeyboardButton
has two new experimental modes, that will hopefully improve its behavior a great deal. It should also fix a problem that could cause itto stop working.
The two experimental modes aim to remove the need to pass in a controller or use the shared one, and to keep the switcher working when typing within the keyboard.
No controller needed?
Keyboard.NextKeyboardButtonControllerMode
is a temporary type that lets us test if we can use a next keyboard button without having to pass in a controller.
Set .current
to any of these values to try them out:
.classic
is the current mode that requires us to pass in a controller or use the shared one..experimental
is a new test mode that makes the button create an internal controller instead..experimentalNilTarget
is a new test mode that makes the button usenil
as the action target.
Switcher active while typing?
NextKeyboardButtonProxyMode
is a temporary type that lets us test if we can reset the textInputProxy
to let the user switch keyboard while typing in a text field within the keyboard.
Set .current
to any of these values to try them out:
.classic
doesn’t reset the proxy and therefore doesn’t let you switch keyboard while editing..experimental
is a new test more that temporarily disables the text input proxy, which makes the switcher work even when typing in a text field withing the keyboard.
Make sure to test these experimental features and report any findings in the project issue tracker.
Conclusion
The KeyboardKit 8.8.7 patch is a massive patch that improves many things that have been lacking for some time. Make sure to test it and reach out if you have any feedback.
For more information, see the release notes for KeyboardKit & KeyboardKit Pro.
Discussions & More
If you found this interesting, please share your thoughts by repling to this tweet or this toot.
Follow on Twitter and Mastodon to be notified when new content & articles are published.