Подтвердить что ты не робот

Как обнаружить кнопку "Backspace" кнопки UIKeyboard на UITextField?

Как я могу обнаружить кнопку возврата назад на UIKeyboard?

enter image description here

спасибо


EDIT: есть ли какой-либо делегат клавиатуры, который возвращает нажатое значение клавиши?

4b9b3361

Ответ 1

если UITextField пуст, метод делегата shouldChangeTextInRange не вызывается Вы можете подклассифицировать UITextField и переопределить этот метод:

-(void)deleteBackward;
{
    [super deleteBackward];
    NSLog(@"BackSpace Detected");
}

так как UITextField совместим с UITextInput протоколом, этот метод реализован, и вы можете переопределить его для обнаружения при нажатии backspace. Затем вы можете написать свой собственный метод протокола/делегата, чтобы предупредить своего пользовательского делегата текстового поля, если обнаружено обратное пространство.

Ответ 2

Прежде всего, ваш UIViewController, который ссылается на UITextField, должен соответствовать UITextFieldDelegate protocol. Затем установите класс delegate в UITextField (например, [myTextField setDelegate:self]). Затем в вашем классе вы добавите следующее. Когда строка "" отправляется как replacementString, вы знаете, что это backspace.

(BOOL)textField:(UITextField *)textField 
      shouldChangeCharactersInRange:(NSRange)range 
      replacementString:(NSString *)string
{                
    if ([string isEqualToString:@""]) {
        NSLog(@"Backspace");            
    }
    return YES;
}

Ответ 3

Временно я вставляю нулевое пространство char на textFieldDidBeginEditing

textField.text = @"\u200B";

в backspace, он удаляет эти символы, но графически это то же самое!

Это взломать, он работает, но он скрывает текст заполнителя... не хорошо...