Возможный дубликат:
Обнаружить обратное пространство в UITextField
Я пытаюсь обнаружить envent ключа backspace в моем UITextfield, которое пусто. Я видел это, но не мог понять. Любой подробный ответ или фрагмент кода будут полезны
Возможный дубликат:
Обнаружить обратное пространство в UITextField
Я пытаюсь обнаружить envent ключа backspace в моем UITextfield, которое пусто. Я видел это, но не мог понять. Любой подробный ответ или фрагмент кода будут полезны
Я обнаружил, что это невозможно.
Когда UITextField пуст, следующий метод делегата не вызывается.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
Я победил это, постоянно имея пробел в поле, и когда я обнаруживаю обратное пространство, а поле содержит только пробел, я возвращаю NO в методе делегата.
if ([string isEqualToString:@""] && [textField.text isEqualToString:@" "]){
// Backspace called on 'empty' field.
return NO;
}
Визуально это так же хорошо, как если поле пустое, и это обходной путь, когда метод делегата не вызывается для пустого поля.
Надеюсь, это поможет.
:) просто для заголовка "Обнаружить обратное пространство", где я использую UIKeyboardTypeNumberPad
.
Сегодня вечером я также встречу тот же вопрос, и вот мой код, чтобы узнать его:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLog([NSString stringWithFormat:@"%d", [string length]]);
}
Поскольку с UIKeyboardTypeNumberPad
пользователь может вводить только Number или backspace, поэтому, когда длина строки равна 0, это должна быть клавиша backspace.
Надеюсь, это поможет.