Вызовы кнопок очистки UITextField дважды делалиEndEditing

У меня есть UITextField с кнопкой Очистить. Каждый раз, когда пользователь уходит в отставку с первым респондентом в текстовом поле, он отправляет изменение в веб-службу.

Когда пользователь нажимает кнопку очистки, похоже, текстовое поле теряет свой статус первого респондента, что вызывает вызов метода делегата didEndEditing. Таким образом, выполняется вызов веб-службы со старым заполненным значением. Затем текстовое поле очищается, снова вызывается didEndEditing, снова вызывается веб-сервис.

Почему так происходит? Я ожидал, что кнопка очистки очистит текст, а затем вызовет didEndEditing для делегата, чтобы вы получили только одно сообщение.


person Nick Locking    schedule 02.10.2013    source источник
comment
Под кнопкой «Очистить» вы имеете в виду встроенную кнопку очистки в текстовом поле или вашу настраиваемую кнопку? Кнопка очистки по умолчанию должна просто очищать текст в поле, а не вызывать didEndEditing. Некоторый код той части, где вы работаете с клавиатурой и текстовым полем, может помочь.   -  person vinaut    schedule 19.10.2013
comment
Добавьте тег для языка, о котором вы говорите, и ui-framework / device. Тогда специалисты заметят ваш вопрос.   -  person Meier    schedule 24.10.2013


Ответы (1)


Если вы имеете в виду встроенную кнопку очистки в UITextField, когда пользователь нажимает на нее, текстовое поле теряет фокус, поскольку сама кнопка получает касание - это запускает первый -didEndEditing. Затем при отпускании кнопки очистки текстовое поле очищается, что снова вызывает -didEndEditing, когда текст действительно очищается. Да, это определенно далеко не идеально.

person RyanR    schedule 23.10.2013