Overview
iOS keyboards use a UITextDocumentProxy to integrate with the currently active text field. It lets you insert and delete text, get the selected text, move the input cursor, etc.
The native proxy APIs are however quite limited, and make it hard to get detailed information about the text and perform many standard keyboard operations.
KeyboardKit adds a bunch of proxy extension to make things easier. KeyboardInputViewController
also has a custom .textDocumentProxy
that lets you do even more.
KeyboardKit Pro adds even more proxy capabilities, such as being able to read the full document, instead of the limited text you get access to by default.
Core Features
KeyboardKit has a Proxy
namespace that contains proxy-related types. For now, it will only contain types when it’s part of the KeyboardKit Pro build.
KeyboardKit extends UITextDocumentProxy
with additional functionality, like autocomplete support, more ways to handle and analyze the text, etc. You get access to it by simply importing KeyboardKit.
👑 Pro Features
KeyboardKit Pro unlocks additional text document proxy capabilities, like the ability to read the full document context, instead of the limited text you get access to by default.
To read the full document context, you just have to call the fullDocumentContext
property, which will move the text cursor to unlock more text.
Omce the read operation is done, KeyboardKit will try to return the text input cursor to its original position. This is a best effort attempt, since the native APIs are very limited.
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.
Pro Features
KeyboardKit Pro unlocks features like autocomplete, emojis, AI, etc.
Actions
KeyboardKit makes it easy to handle keyboard actions.
App
KeyboardKit makes it easy to set up your app and keyboard.
Callouts
KeyboardKit can show input & secondary action callouts.
Device Utilities
KeyboardKit has device-specific utilities.
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.
Input
KeyboardKit can input text inside the keyboard extension itself.
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.
Themes
KeyboardKit can use themes to style keyboards in flexible ways.