У меня есть модальное окно, которое используется для поиска данных с удаленного сервера - оно имеет UITextField в качестве titleControl панели навигации для окна и табличное представление, заполняющее окно (которое явно отображает результаты). Теперь я хочу, чтобы пользователь прокручивал табличное представление, немедленно терял фокус на текстовом поле (оставлял первого респондента), чтобы клавиатура отклонялась, и у пользователя было больше места для прокрутки табличного представления (оно растягивается, чтобы заполнить оставшийся пробел). по клавиатуре). В основном те же функциональные возможности, что и при использовании UISearchDisplayController (или как там это называется).
Итак, у меня есть этот код для обнаружения события прокрутки таблицы:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
[searchField resignFirstResponder];
}
Который работает нормально. Однако проблема заключается в том, что как только пользователь прокручивает таблицу и текстовое поле теряет фокус, вы не можете вернуть ему фокус, снова нажав на него. Так что, как правило, когда я называю это [resignFirstResponser]
, я больше никогда не могу вернуть клавиатуру обратно и отредактировать значение текстового поля. У кого-нибудь есть идеи, почему? Нужно ли явно вызывать [becomeFirstResponder]
на поле где-нибудь? Потому что я думал, что это обрабатывается автоматически при нажатии на поле?
Также обратите внимание: я звоню [becomeFirstResponder]
в текстовом поле, когда модальное окно вызывается впервые, поэтому поле предварительно сфокусировано. Может ли это иметь какое-либо отношение к этому?
Я могу опубликовать больше кода, если кто-нибудь захочет, но я не думаю, что я делаю что-то необычное с текстовым полем.
Спасибо за любую помощь!