Search code examples
iosobjective-cipaduikeyboardtype

Which UIKeyboardType can I use on the iPad


I have a a textField object in my iPad app. I would like to give the user a convenient keyboard for entering numbers. In my code I added:

UITextField *textField = [[UITextField alloc] initWithFrame:frame];
textField.keyboardType = UIKeyboardTypeDecimalPad;

According to the docs this is a valid keyboard type but when I edit the text field the normal ASCII keyboard comes up. However, when I change it to:

textField.keyboardType = UIKeyboardTypePhonePad;

The keyboard looks like this: phonepad keyboard

Ideally I would like a keyboard that only has the numbers and decimal point but is this not possible on the iPad? Does anyone have a definitive list of which keyboards work on the iPhone vs. iPad? Apple is unclear on this point. I also saw this question which is similar but none of the answers really address my point.


Solution

  • These are the UIKeyboardTypes that can be used on both iOS devices. From the docs:

    • UIKeyboardTypeDefault

      • Use the default keyboard for the current input method.
      • Available in iOS 2.0 and later.
      • Declared in UITextInputTraits.h.

    • UIKeyboardTypeASCIICapable

      • Use a keyboard that displays standard ASCII characters.
      • Available in iOS 2.0 and later.
      • Declared in UITextInputTraits.h.

    • UIKeyboardTypeNumbersAndPunctuation

      • Use the numbers and punctuation keyboard.
      • Available in iOS 2.0 and later.
      • Declared in UITextInputTraits.h.

    • UIKeyboardTypeURL

      • Use a keyboard optimized for URL entry. This type features “.”, “/”, and “.com” prominently.
      • Available in iOS 2.0 and later.
      • Declared in UITextInputTraits.h.

    • UIKeyboardTypeNumberPad

      • Use a numeric keypad designed for PIN entry. This type features the numbers 0 through 9 prominently. This keyboard type does not support auto-capitalization.
      • Available in iOS 2.0 and later.
      • Declared in UITextInputTraits.h.

    • UIKeyboardTypePhonePad

      • Use a keypad designed for entering telephone numbers. This type features the numbers 0 through 9 and the “*” and “#” characters prominently. This keyboard type does not support auto-capitalization.
      • Available in iOS 2.0 and later.
      • Declared in UITextInputTraits.h.

    • UIKeyboardTypeNamePhonePad

      • Use a keypad designed for entering a person’s name or phone number. This keyboard type does not support auto-capitalization.
      • Available in iOS 2.0 and later.
      • Declared in UITextInputTraits.h.

    • UIKeyboardTypeEmailAddress

      • Use a keyboard optimized for specifying email addresses. This type features the “@”, “.” and space characters prominently.
      • Available in iOS 2.0 and later.
      • Declared in UITextInputTraits.h.

    • UIKeyboardTypeDecimalPad

      • Use a keyboard with numbers and a decimal point.
      • Available in iOS 4.1 and later.
      • Declared in UITextInputTraits.h.

    • UIKeyboardTypeTwitter

      • Use a keyboard optimized for twitter text entry, with easy access to the @ and # characters.
      • Available in iOS 5.0 and later.
      • Declared in UITextInputTraits.h.

    • UIKeyboardTypeAlphabet

      • Deprecated.
      • Use UIKeyboardTypeASCIICapable instead.
      • Available in iOS 2.0 and later.
      • Declared in UITextInputTraits.h.

    Here are some screenshots of the different types of keyboards.