我需要使用名称电话键盘类型 (UIKeyboardTypeNamePhonePad),但在选择文本字段时首先显示数字键盘。
我需要输入数据,例如
123 -
第657章-
450b-
123a
我总是需要先输入一个数字,但有时最后需要输入 A / B。
您可以尝试根据字符串大小的函数更改键盘类型:
然后设置默认文本字段键盘;
[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;
}
另一个解决方案是添加一个附件视图按钮(您可以手动更改键盘):
- (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];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)