Вы можете попытаться изменить тип клавиатуры в зависимости от размера строки:
- Реализовать делегат UITextFieldDelegate
Затем установите УСПЕШНОЕ TextField клавиатуры;
[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];
}
Любое везение найти истинное решение? Мне нравится предотвращать один незамужний щелчок также – alex
еще не пробовал в iOS 9. – DogCoffee