Download Latest Version 9.8.0-beta.2 source code.tar.gz (7.6 MB)
Email in envelope

Get an email when there's a new version of KeyboardKit

Home / 9.8.0-beta.2
Name Modified Size InfoDownloads / Week
Parent folder
KeyboardKitPro.zip 2025-07-24 9.3 MB
9.8.0-beta.2 source code.tar.gz 2025-07-24 7.6 MB
9.8.0-beta.2 source code.zip 2025-07-24 7.9 MB
README.md 2025-07-24 4.0 kB
Totals: 4 Items   24.8 MB 1

With the new view modifier-based callout & style customizations working well, the corresponding services have been soft deprecated.

This mean that they WILL be removed in the next major version, but they are only deprecated with comments and not using attributes.

The reason for this is that they are still used internally. Adding deprecation attributes would trigger a large amount of warnings.

🔣 BETA - View Modifier Layout Customizations

This version adds a .keyboardLayout view modifier to KeyboardKit Pro, which can be used to customize the current keyboard layout.

This works just like the .keyboardCalloutActions and .keyboardButtonStyle modifiers that let you inject a custom value builder.

This view modifier and all new layout values is currently only available in KeyboardKit Pro, but fully available in KeyboardKit 10.

You can use the KeyboardLayout.standard(for:) builder to create a standard layout for any keyboard context and its active locale.

KeyboardKit Pro also adds new localized keyboard layout values for all supported locales. They will replace the localized services.

This modifier based-approach will make it a lot easier to customize the keyboard layout. As such, the services are soft deprecated.

📃 BETA - Keyboard Type Change Handling

This version makes the controller redraw its keyboard when the active text field changes, to properly handle keyboard type changes.

This works by having the controller check the text document proxy's keyboard type in each textDidChange and redraw if it changes.

This feature is disabled by default in the betas, since it can cause strange behaviors, performance issues, and maybe even crashes.

You can enable it with the enableExperimentalKeyboardTypeChangeTracking(...) function. Make sure to report any problems you find.

✨ Features

  • Callouts.Actions can now init with actions and chars.
  • Callouts.Actions.base now has domain callout actions.
  • Callouts.ActionCallout now shows domain callout actions.
  • InputSet has brand new default value builder parameters.
  • Keyboard.KeyboardType has a new .webSearch keyboard type.
  • KeyboardAction has brand new standard layout value builders.
  • KeyboardAction has a new .urlDomain action for domain input.
  • View has a new .keyboardLayout(_:) view modifier that can inject a custom layout.

👑 Pro

  • KeyboardLayout has new localized value builders for all supported locales.
  • KeyboardLayout has new .setWidth(...) item mutations.
  • KeyboardLayout has a new .baseLayout(...) layout builder.
  • KeyboardLayout has a new .iPadLayout(...) layout builder.
  • KeyboardLayout has a new .iPhoneLayout(...) layout builder.
  • KeyboardLayout has a new .standard(for:) layout builder.

🔧 Performance Improvements

  • KeyboardKit Pro's new layout builders improve the layout rendering performance.
  • To enable the improvements, apply the new .keyboardLayout(...) view modifier.
  • Return $0.standardLayout(for:) for a standard layout with better performance.
  • You can customzie the standard layout and still get the underlying improvements.

📦 Renamings

  • The KeyboardCallout namespace has been renamed to Callouts.
  • The KeyboardCalloutContext has been renamed to CalloutContext.

⚠️ Experimental Features

  • KeyboardInputViewController has a new enableExperimentalDocumentChangeTracking() function.

🗑️ Deprecations

  • Color+Standard has been deprecated. Use KeyboardAction extensions.
  • CalloutService and all service implementations have been deprecated.
  • InputSet has been nested and is renamed to KeyboardLayout.InputSet.
  • KeyboardKitPro.ProLayoutService and all sub classes have been deprecated.
  • KeyboardLayoutService and all service implementations have been deprecated.
  • KeyboardStyleService and all service implementations have been deprecated.
Source: README.md, updated 2025-07-24