KeyboardKit is a Swift SDK that lets you create fully customizable keyboards with a few lines of code, using SwiftUI.
MIT License
Bot releases are hidden (Show)
This version adds support for iPad Pro layouts to KeyboardKit Pro, for selected locales.
The documentation has been thoroughly rewritten to be more consistent and to include more images and code samples.
DeviceType
has a new boolean properties.Image
has many more keyboard image extensions.KeyboardAction
has a new capsLock
action.Keyboard.Case
has a new isCapsLocked
property.Keyboard.KeyboardType
has a new isAlphabeticCapsLocked
property.Keyboard.ReturnKeyType
has a new nativeType
property on iOS
.KeyboardLayout.ItemRow
has new hasKeyboardSwitcher
and suggestedInputWidth
function.KeyboardLayout.ItemRows
has new hasKeyboardSwitcher
and inputWidth
function.KeyboardStyleProvider
has a new buttonContentInsets
function.iPadProKeyboardLayoutProvider
is a new layout provider for iPad Pro layouts.ProKeyboardLayoutProvider.spanish
now supports QWERTY, QWERTZ and AZERTY.iPadProKeyboardLayoutProvider
is (so far) used by the following locales:.english
.albanian
.croatian
.dutch
.dutchBelgium
.estonian
.filipino
.french
.french_belgium
.french_switzerland
.hungarian
.indonesian
.irish
.italian
.latvian
.lithuanian
.malay
.polish
.portuguese
.portuguese_brazil
.romanian
.serbian_latin
.spanish
.slovenian
.swahili
.swedish
.uzbek
KKL10n
has a new capsLock
key, which is currently only localized in English.InputSet.azerty
now displays correctly on iPad.Image.keyboardLeft
has been renamed to .keyboardArrowLeft
.Image.keyboardRight
has been renamed to .keyboardArrowRight
.This version adjusts localization and adds support for Inari Sรกmi and Northern Sรกmi.
SubmitLabel+CaseIterable
makes the type implement CaseIterable
.KeyboardLocale.northernSami
is a new supported locale.KeyboardLocale.inariSami
is a new supported locale.KeyboardInputViewController
now unregisters itself as shared controller in deinit.KKL10n
no longer has a .searchEmoji
key.PreviousAppNavigator
has been deprecated..keyboardDictation
modifiers now support injecting a custom service.KeyboardUrlOpener
has been deprecated.KKL10n.emergencyCall
has been deprecated.KKL10n.keyboardTypeAlphabetic
has been renamed to .switcherAlphabetic
.KKL10n.keyboardTypeNumeric
has been renamed to .switcherNumeric
.KKL10n.keyboardTypeSymbolic
has been renamed to .switcherSymbolic
.KKL10n.ok
has been deprecated.This version improves autocomplete and localized provider capabilities.
This version removes the temporary migration types that were added in 8.0. To upgrade to this or any later version, first update to 8.0 and follow the migration guides. This will remove any breaking changes when upgrading to this version.
Autocomplete
has a new AutocorrectionDisabledToContextModifer
modifier.AutocompleteContext
has a new isAutocorrectDisabled
property.LocaleDictionary
has new getters and setters.StandardCalloutActionProvider
has a new registerLocalizedProvider
function.StandardKeyboardLayoutProvider
has a new registerLocalizedProvider
function.View
has a new autocorrectionDisabled(with:)
modifier.SystemKeyboard
now automatically honors any .autocorrectionDisabled()
that is applied above it.LocalAutocompleteProvider
maxCount
is now public
and mutable.LocalAutocompleteProvider
removes autocorrect suggestions if the context has autocorrect disabled.RemoteAutocompleteProvider
autocompleteSuggestions
is now open
.RemoteAutocompleteProvider
properties are now public
and mutable.RemoteAutocompleteProvider
removes autocorrect suggestions if the context has autocorrect disabled.KeyboardLocale.kurdish_sorani_pc
now displays its localized name properly in iOS 17.AutocompleteContext
isEnabled
is renamed to isAutocompleteEnabled
.This patch removes previous app navigation from KeyboardKit Pro after sudden App Store review rejections.
KeyboardInputViewController
no longer shows license validation error alerts by default.KeyboardInputViewController
now lets you define whether or not to show a license validation error alert.PreviousAppNavigator
default navigator is removed, since it started causing occasional review rejections.This patch improves system keyboard toolbars and the ToggleToolbar in KeyboardKit Pro.
The demo app has been improved to persist the typed text and to show more pro features, like the full document reader and a theme picker.
Collection<KeyboardTheme>
has a new, static allPredefined
property.KeyboardTheme.ShelfView
is a new view that creates scrolling shelves.KeyboardTheme.ShelfViewItem
is a new view that can be used in a theme shelf view.KeyboardTheme.Collection
is now Identifiable
.SystemKeyboard
now applies a minimum height to custom toolbars, to avoid confusion where they disappear when no height is applied.SystemKeyboardButtonPreview
now disables hit testing for the button view.Gestures.GestureButton
now has a public initializer.Gestures.ScrollViewGestureButton
now has a public initializer.SystemKeyboardButtonPreview
now uses the passed in style provider, if any.ToggleToolbar
now uses the same default .slideUp
animation for all initializers.ToggleToolbar
now applies a content shape to the default toggle to improve tap area.ToggleToolbar
deprecates the toggleView
initializer in favor for the shorter toggle
one.This patch fixes an iOS 17 dictation navigation bug and syncs the controller's host bundle ID with the keyboard context.
KeyboardContext
has a new hostApplicationBundleId
property.SystemKeyboardButtonPreview
has been simplified and made greedy.SystemKeyboardPreview
can now be used as a header/footer without useing any modifiers.PreviousAppNavigator
has been configured to work even in iOS 17.StandardKeyboardDictationService
can once again navigate back when dictation finishes.InputSet.Turkish
has been slightly adjusted.SystemKeyboardButtonPreview
now renders themes correctly.PreviousAppNavigator
now renders themes correctly.SystemKeyboardPreview
header/footer modifiers are removed since they're no longer needed. See the docs.This patch improves the text routing views and fixes a big in the text field.
KeyboardTextView
makes it easier to define leading and trailing views for the native text field.KeyboardTextView
applies padding to the native text field's left and right side views.KeyboardTextView
auto-reset in 8.0.2. This has been fixed.This patch tweaks some migration guides before removing them in 8.1.
This patch moves emoji features from Emojis
(which was introduced in 8.0) to Emoji
after developer feedback that Emojis
was a strange prefix.
This patch makes some Pro views throwing instead of rendering empty content, since this was confusing. If you run into problems with this, just prefix your call with try?
.
EmojiCategory
initializers are now throwing.Emoji
skin tones are now throwing.Emoji.Version
functionality is now throwing.Emojis
is deprecated since all functionality is moved into Emoji
.