Custom Keyboards

You can provide a custom keyboard by creating a keyboard extension that replaces the standard keyboard. After people enable your custom keyboard in Settings, they can use it for 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.

Image of a custom keyboard overlaid with a blue curving line that represents the path a finger took while moving through the letters that spell the word Hello.

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 want to provide a custom keyboard for people to use only while they're 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 multiple keyboards are installed.

Don't duplicate system-provided keyboard features. On some devices, 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 Creating a Custom Keyboard.

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.

Image of a custom input view that includes dollar, percent, minus, delete, tab, and return buttons in addition to a numeric keypad.

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.

Image of a custom accessory view that provides a search bar and three custom calculation buttons above the alphabetic keyboard.