UIKeyboardTypeNamePhonePad – 显示选项

我需要使用名称电话键盘types(UIKeyboardTypeNamePhonePad),但是在select文本字段时,首先显示数字键盘。

我需要input数据如

123 – 657 – 450b – 123a

我总是需要先input一个数字,但偶尔也要inputA / B。

您可以尝试更改string大小的函数的键盘types:

  • 实现委托UITextFieldDelegate

然后设置默认的文本框键盘;

[textField setKeyboardType:UIKeyboardTypeNumberPad]; [textField setDelegate:self]; 

然后在下面的方法中,当文本大小等于3时更改键盘:

 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if([[textField text] length] > 3) { [textField setKeyboardType:UIKeyboardTypeDefault]; [textField reloadInputViews]; } return YES; } 

另一个解决scheme是添加一个配件视图button(您可以手动更改键盘):

 - (void)viewDidLoad { [super viewDidLoad]; textField.keyboardType = UIKeyboardTypeNumberPad; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setFrame:CGRectMake(0, 0, 50, 50)]; [button addTarget:self action:@selector(changeKeyboard) forControlEvents:UIControlEventTouchDown]; textField.inputAccessoryView = button; } -(void)changeKeyboard { if([textField keyboardType] == UIKeyboardTypeNumberPad) { textField.keyboardType = UIKeyboardAppearanceDefault; } else { textField.keyboardType = UIKeyboardTypeNumberPad; } [textField reloadInputViews]; } 

点击文本框,然后转到隐藏或显示实用程序,即查看(你会发现它在右侧旁边的编辑器。你select第三个视图,即最正确的一个)。 然后你点击属性检查器。在那里你会发现一个名为“键盘”的菜单被设置为默认,但是你可以select你想要的任何一个键盘。 希望对你有效。