views:

583

answers:

3

Hello, Does any one know how to show the numbers keyboard in the iphone rather than the default one? And is there a way to filter the textfield for numbers only? I need to do that from the code not from interface builder

Thanks

+1  A: 

Set the keyboardType property of the entry field to be numeric, either in Interface Builder or via code.

Something like this should work:

textField.keyboardType = UIKeyboardTypeNumberPad;

For all the possible keyboard types see the Apple docs

Kristopher Johnson
Is there a way to do that from code?
thary
@Jeff Kelley the code was added after thary's comment was made.
Shaggy Frog
+1  A: 

alternatively, set the textfield's keyboardType property in code:

textField.keyboardType = UIKeyboardTypeNumberPad

Available options are:

UIKeyboardType The type of keyboard to display for a given text-based view.

typedef enum {
UIKeyboardTypeDefault,
UIKeyboardTypeASCIICapable,
UIKeyboardTypeNumbersAndPunctuation,
UIKeyboardTypeURL,
UIKeyboardTypeNumberPad,
UIKeyboardTypePhonePad,
UIKeyboardTypeNamePhonePad,
UIKeyboardTypeEmailAddress,
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable } UIKeyboardType;

A word of caution though, The NumberPad doesn't have a decimal point for entry. If you need that you'll have to use something else.

John Wang
which one do you recommend for decimal point entry ?
thary
UIKeyboardTypeNumbersAndPunctuation sounds good to me.
John Wang
thanks mate that was quick!
thary
A: 

To add to Kristopher Johnson's answer, UITextField supports the UITextInputTraits protocol, which has a UIKeyboardType @property called keyboardType. You just set that to be whatever you want (in your case, UIKeyboardTypeNumberPad). One place to put this in your code is in the viewDidLoad method of your view controller.

textField.keyboardType = UIKeyboardTypeNumberPad;
Shaggy Frog