Overview
Keyboard extensions will by default only send text to the text field in the currently active app, and will not detect if you select a text field within the keyboard.
This makes it hard to build features that require the user to type within the keyboard extensions, like search features, or AI-based text inputs.
KeyboardKit therefore adds ways to make this easier, and adds ways to route text to any other text field within the keyboard extension.
KeyboardKit Pro unlocks even more input utilities, like a KeyboardTextField
that automatically lets you type within a keyboard extension.
Core Features
UIInputController
has a textDocumentProxy
, which is how a keyboard is meant to integrate with the currently active app.
KeyboardKitβs KeyboardInputViewController
adds an additional textInputProxy
property, that can be set to replace textDocumentProxy
as the main text document proxy.
Setting textInputProxy
will cause any text you type in the keyboard to be sent to that proxy instead. Just set the textInputProxy
to nil
to start routing text back to the main app.
π Pro Features
KeyboardKit Pro unlocks text input views that automatically register and unregister themselves as the textInputProxy
when they receive and lose focus.
KeyboardTextField
wraps a UITextField
and can be used for single-line text inputs (or multi-line in later versions of iOS), while KeyboardTextView
wraps a multi-line UITextView
.
Both views support SwiftUI FocusState
and have a focused
view modifier that lets you provide a custom done button that slides in when the view is focused.
Documentation
The information on this page is shortened to be easier to overview. For more information about this feature, code samples, etc. please see the online documentation.
Read more
Essentials
KeyboardKit provides essential features, utilities & views.
Actions
KeyboardKit makes it easy to trigger keyboard-related actions
AI Support
KeyboardKit has features that are needed for AI.
App
KeyboardKit has app-specific screens & views.
Autocomplete
KeyboardKit can perform autocomplete.
Callouts
KeyboardKit can show input & secondary action callouts.
Colors
KeyboardKit defines keyboard-specific colors.
Device Utilities
KeyboardKit has device-specific utilities.
Dictation
KeyboardKit can perform dictation from the keyboard.
Emojis
KeyboardKit defines emojis, categories, skin tones, etc.
External Keyboards
KeyboardKit Pro can detect if an external keyboard is being used.
Feedback
KeyboardKit can trigger audio & haptic feedback.
Gestures
KeyboardKit has a customizable keyboard gesture engine.
Host
KeyboardKit can identify the host application.
Images
KeyboardKit defines keyboard-specific images.
Layout
KeyboardKit has customizable input sets & keyboard layouts.
Localization
KeyboardKit supports 60+ locales and languages.
Navigation
KeyboardKit lets you open urls and apps from the keyboard.
Previews
KeyboardKit has extension keyboard preview support.
Proxy Utilities
KeyboardKit makes your text document proxy do a LOT more.
Settings
KeyboardKit has tools for in-app settings & System Settings.
Status
KeyboardKit detects if a keyboard is enabled, has full access, etc.
Styling
KeyboardKit lets you style your keyboards to great extent.
Text Input
KeyboardKit can input text inside the keyboard extension itself.
Themes
KeyboardKit can use themes to style keyboards in flexible ways.