Programmatically changing keyboard type on iOS does nothing

Kladimir picture Kladimir · Sep 27, 2012 · Viewed 15.8k times · Source

I want to change keyboard type from default to numeric after user pressed return button. However after setting keyboardType property nothing happens.

My code:

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField setKeyboardType:UIKeyboardTypeNumbersAndPunctuation];

    return YES;
}

I have set myself as text field delegate and the method is being called after pressing return button.

EDIT: Solved by

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField setKeyboardType:UIKeyboardTypeNumbersAndPunctuation];
    [textField reloadInputViews];
    return YES;
}

Answer

pro_metedor picture pro_metedor · Sep 27, 2012

Try this:

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField setKeyboardType:UIKeyboardTypeNumbersAndPunctuation];
    [textField reloadInputViews];
    return YES;
}