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;
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.
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.