Я хотел бы создать диалоговое окно с пин-кодом, подобное тому, которое вы можете включить на iPhone.
Для тех, кто его не видел, он состоит из четырех ящиков и цифровой клавиатуры. Когда вы вводите цифру, в первом поле появляется точка. И так далее. Когда вы нажимаете кнопку удаления, последняя точка удаляется.
У меня есть четыре UITextFields, и в моем делегате я слушаю:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
[self performSelector:@selector(pickNext:) withObject:textField afterDelay:0.0];
return YES;
}
Метод pickNext: переключится на следующий UITextField, например:
- (void)pickNext:(UITextField*)textField
{
switch ([textField tag]) {
case 1:
[pin2 becomeFirstResponder];
break;
case 2:
[pin3 becomeFirstResponder];
break;
case 3:
[pin4 becomeFirstResponder];
break;
case 4:
[textField resignFirstResponder];
break;
default:
break;
}
}
Это на самом деле работает, но проблема для меня в том, что ключ удаления не выдает никаких уведомлений, когда UITextField уже пуст. Поэтому я не могу перейти к предыдущему UITextField.
Так у кого-нибудь есть лучшее решение о том, как решить эту проблему. Я думаю, скрытое текстовое поле ... ??