Действие, когда нажата маленькая кросс -кнопка Uitextfield

StackOverflow https://stackoverflow.com/questions/7304311

Вопрос

Я могу добавить небольшую перекрестную кнопку, которая используется для очистки всего текста за один нажимать в UITextField со следующим кодом.

textField.clearButtonMode = UITextFieldViewModeWhileEditing;

Я также реализовал UITextFieldDelegate.

Я хочу активировать/деактивировать правую кнопку UINavigationBar в соответствии с изменениями в моем UITextField. Анкет Правило простое: если в текстовом поле есть хотя бы один символ, просто включите кнопку, иначе отключите ее.

Я реализовал UITextFieldМетод делегата textField:shouldChangeCharactersInRange: Чтобы постоянно проверять требование и обновить состояние кнопки.

Теперь моя проблема в том, что когда я нажимаю маленькую кнопку по пересечению в текстовом поле, метод textField:shouldChangeCharactersInRange: не называется. Таким образом, требуемое действие отсутствует. Как я могу определить событие нажима кнопки прозрачной?

Несколько фотографий, чтобы показать, о чем я говорю.

Начальный этап: Здесь кнопка «Готово» отключена, потому что в текстовом поле нет букв.

При вводе буквы кнопка «Готово» включена

Теперь, если я нажимаю на кнопку «Очистить», кнопка «Готово» все еще включена. Это не правильно.

Это было полезно?

Решение

Использовать Метод делегата textViewShouldClear::

Спрашивает делегата, следует ли удалить текущее содержимое текстового поля.

- (BOOL)textFieldShouldClear:(UITextField *)textField

Параметры

textField

Текстовое поле, содержащее текст.

Возвращаемое значение

YES Если содержимое текстового поля должно быть очищено; в противном случае, NO.

Дискуссия

Текстовое поле вызывает этот метод в ответ на пользователь, нажимающий встроенную кнопку Clear. (Эта кнопка не отображается по умолчанию, но может быть включена путем изменения значения в clearButtonMode свойство текстового поля.) Этот метод также называется при начинании редактирования и clearsOnBeginEditing свойство текстового поля установлено на YES.

Реализация этого метода делегатом является необязательной. Если его нет, текст очищается, как если бы этот метод вернулся YESАнкет Доступность

* Available in iOS 2.0 and later.

Объявлен в Uitextfield.h

Другие советы

Вы можете использовать textFieldShouldClear: Делегировать метод для обработки, когда пользователь нажимает на кнопку Clear.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top