A custom keyboard replaces the system keyboard for users who want capabilities such as a novel text input method or the ability to enter text in a language not otherwise supported in iOS. The essential function of a custom keyboard is simple: Respond to taps, gestures, or other input events and provide text, in the form of an unattributed
NSString object, at the text insertion point of the current text input object.
After a user chooses a custom keyboard, it becomes the keyboard for every app the user opens. For this reason, a keyboard you create must, at minimum, provide certain base features. Most important, your keyboard must allow the user to switch to another keyboard.
Understand User Expectations for Keyboards
To understand what users expect of your custom keyboard, study the system keyboard—it’s fast, responsive, and capable. And it never interrupts the user with information or requests. If you provide features that require user interaction, add them not to the keyboard but to your keyboard’s containing app.
Keyboard Features That iOS Users Expect
There is one feature that iOS users expect and that every custom keyboard must provide: a way to switch to another keyboard. On the system keyboard, this affordance appears as a button called the globe key. iOS 8 provides specific API for your “next keyboard” control, described in Providing a Way to Switch to Another Keyboard.
The system keyboard presents an appropriate key set or layout based on the
UIKeyboardType trait of the current text input object. With the insertion point in the To: field in Mail, for example, the system keyboard period key changes: When you press and hold that key, you can pick from among a set of top-level domain suffixes. Design your custom keyboard with keyboard type traits in mind.
iOS users also expect autocapitalization: In a standard text field, the first letter of a sentence in a case-sensitive language is automatically capitalized.
These features and others are listed next.
Appropriate layout and features based on keyboard type trait
Autocorrection and suggestion
Automatic period upon double space
Caps lock support
Multistage input for ideographic languages
You can decide whether or not to implement such features; there is no dedicated API for any of the features just listed, so providing them is a competitive advantage….more
Article with example: http://www.appdesignvault.com/ios-8-custom-keyboard-extension/