Custom Keyboards

A keyboard extension replaces the standard keyboard with a custom keyboard. Custom keyboards are enabled in the Settings app, under General > Keyboards. Once enabled, the keyboard is available during text entry within any app, except when editing secure text fields and phone number fields. People can enable multiple custom keyboards, and switch between them at any time.

Make sure you really need a custom keyboard. Custom keyboards make sense when you want to expose unique keyboard functionality systemwide, such as a novel way of inputting text or the ability to type in a language not supported by iOS. If you only want a custom keyboard in your app, consider creating a custom input view instead. See Custom Input Views.

Provide an obvious and easy way to switch between keyboards. People know that the Globe key on the standard iOS keyboard, which replaces the Emoji key when you have multiple keyboards enabled, quickly switches to other keyboards. They expect a similarly intuitive experience in your keyboard. Note that the Globe key replaces the Emoji key when you have multiple keyboards installed.

Don't duplicate system-provided keyboard features. On iPhone X, the Emoji/Globe key and Dictation key automatically appear beneath the keyboard—even when using custom keyboards. Your app can't affect these keys, so avoid causing confusion by repeating them in your keyboard.

Consider providing a keyboard tutorial in your app. People are used to the standard keyboard, and learning a new keyboard takes time. Make the onboarding process easier by providing usage instructions in your app—not in the keyboard itself. Tell people how to enable your keyboard, activate it during text entry, use it, and switch back to the standard keyboard.

For developer guidance, see Custom Keyboard in App Extension Programming Guide.

Custom Input Views

A custom input view replaces the standard keyboard with a custom keyboard, but only in your app, rather than systemwide. Use a custom input view to provide a unique and efficient method of data entry. Numbers, for example, implements a custom input view for entering numeric values while editing a spreadsheet.

Make functionality obvious. The controls on a custom input view should make sense in the context of your app. Data entry should be clear and intuitive, so additional instruction isn’t necessary.

Play the standard keyboard click sound during typing. The keyboard click sound provides audible feedback while the user is tapping keys on the keyboard. Tapping custom controls in your input view should produce this sound too. Note that this sound is only available to visible custom input views, and people can disable the sound systemwide in Settings > Sounds. For developer guidance, see the playInputClick method of UIDevice.

Provide an input accessory view if necessary. Some apps implement an additional custom input accessory view, which appears above the keyboard. In Numbers, an input accessory view helps people enter standard or custom calculations.

For developer guidance, see Custom Data Input Views in Text Programming Guide for iOS.