Действие, когда нажата маленькая кросс -кнопка Uitextfield
-
25-10-2019 - |
Вопрос
Я могу добавить небольшую перекрестную кнопку, которая используется для очистки всего текста за один нажимать в 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.