Layout

KeyboardKit has customizable input sets & keyboard layouts.

πŸ”£

Overview

A flexible keyboard layout is at the heart of a software keyboard, with many considerations like the current device model, screen orientation, locale, etc.

KeyboardKit lets you use input sets to define input keys, and keyboard layouts to define the full set of keys. This gives you maximum flexibility to define layouts for different locales and configurations.

KeyboardKit Pro unlocks more features, like more input sets, iPad Pro layouts, and localized input sets and layout providers for all supported locales.

Core Features

An InputSet specifies the input keys of a keyboard. KeyboardKit has predefined sets like .qwerty, .standardNumeric and .standardSymbolic. You can easily define your own input sets.

A KeyboardLayout specifies the full set of keys of a keyboard. It can vary greatly for different device types, screen orientations, locales, etc. You can combine input sets and layouts for great flexibility.

For instance, iOS keyboards often have 3 input rows, where the input keys are surrounded by side buttons, and a bottom row that is often the same across locales.

System Keyboard - English

This is however not always true. Layouts differ between iPhone, iPad & iPad Pro, some locales (like Armenian) have 5 rows, some (like Greek) remove side-buttons, etc.

The layout engine must thus be flexible, to cater to the needs of these considerations. KeyboardKit has a bunch of base classes that define a good starting point.

πŸ‘‘ Pro Features

KeyboardKit Pro unlocks additional input sets like AZERTY and QWERTZ, and localized input sets and layout providers for all keyboard locales in your license.

KeyboardKit Pro automatically makes the SystemKeyboard support all input sets and layouts in your license, without any additional code needed. Just change locale, and the keyboard will adjust itself.

KeyboardKit Pro also unlocks a KeyboardLayout.iPadProProvider that can generate iPad Pro layouts. This provider is used by all supported keyboard locales by default:

System Keyboard - iPad Pro

KeyboardKit Pro also unlocks ways to easily add a character input toolbar above a SystemKeyboard:

SystemKeyboard - input toolbar

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.