UITextField - обнаружить ввод на встроенной клавиатуре iPhone? - PullRequest
4 голосов
/ 15 января 2012

[UITextFieldVariable становитьсяFirstResponder];выводит клавиатуру на экран.

Как определить, когда пользователь вводит букву на клавиатуре?Я хотел бы знать каждый раз, когда нажимается клавиша.

Заранее большое спасибо!

Ответы [ 2 ]

7 голосов
/ 15 января 2012

Используйте NSNotificationCenter и посмотрите на UITextFieldTextDidChangeNotification.

[[NSNotificationCenter defaultCenter] addObserver:self
          selector:@selector(textFieldChanged)
              name:UITextFieldTextDidChangeNotification
            object:textField];

. Теперь реализуйте функцию -(void)textFieldChanged; и каждый раз, когда вызывается эта функция, сравнивайте новый текст в UITextFieldсо старым текстом.Все, что изменилось, - это нажатая кнопка.

Сделайте что-то похожее для UITextFieldTextDidBeginEditingNotification и UITextFieldTextDidEndEditingNotification, чтобы гарантировать, что кнопки были нажаты, даже если текст не был напечатан (например, при нажатии обратной косой черты).

2 голосов
/ 15 января 2012

Дайте текстовое поле (поля) делегат. Метод делегата -textField:shouldChangeCharactersInRange:replacementString: будет вызываться всякий раз, когда пользователь изменяет текст, в том числе путем ввода символов на клавиатуре.

...