UITextFieldDelegate не вызывается при нажатии клавиши отмены на клавиатуре iPad - PullRequest
1 голос
/ 21 ноября 2011

На клавиатуре iPad есть клавиша отмены.

У меня есть UITextField * textField где, textField.placeholder = @ "Input";

Предполагается, что textField не является пустым (textField.text = @ "Something";), когда я дотронулся до textField, и он стал firstResponder,

1, Backspace вся строка в textField (заполнитель показан) 2, введите что-то еще 3, Backspace все снова (заполнитель показан) 4, нажмите кнопку «Отменить»

Результат: Держатель textField.place отображается с перекрывающим его textField.text. Кроме того, UITextFieldDelegate (shouldChangeCharactersInRange и UITextFieldTextDidChangeNotification) не вызывается.

Кто-нибудь сталкивается с той же проблемой? Это как-то ошибка iOS?

1 Ответ

0 голосов
/ 21 ноября 2011

Вот несколько шагов, которые нужно выполнить, просто подтвердите, что вы сделали только таким образом.

  1. Соединение IBOutlet с объектом текстового поля с файлом пера
  2. Установите свойство делегата для текстового поля вnib-файл для владельца файла
  3. В файле .h реализованы
  4. В файле .m реализованы следующие методы:
    • (void) textFieldDidBeginEditing: (UITextField *) textField
    • (BOOL) textField: (UITextField *) textField shouldChangeCharactersInRange: (NSRange) range replaceString: (NSString *) string

Поэтому, когда вы начинаете редактирование, вызывается первый метод,И после этого для каждого обновления в текстовом поле вызывается второй метод.

Использование точек останова поможет вам уловить точный сценарий.

...