У меня есть UISearchBar и в методе делегата я скрываю клавиатуру, когда текстовое поле очищено:
- (void)searchBar:(UISearchBar *)filterBar textDidChange:(NSString *)filterText {
NSLog(@"filter: %@", filterText);
if ([filterText length] == 0) {
NSLog(@"hiding keyboard");
[filterBar resignFirstResponder ];
Теперь, когда я использую кнопку возврата, чтобы убрать поисковый запрос, все хорошо. Клавиатура скрывается, когда поиск становится пустым. Не так, когда я нажимаю кнопку «крестик», чтобы полностью очистить поле поиска.
Ну, не совсем так. Я вызываю resignFirstResponder и скрываю клавиатуру - вы просто не можете ее увидеть, потому что она возвращается обратно. Я узнал об этом, наблюдая за событиями шоу / скрытия клавиатуры.
Так почему же клавиатура снова отображается? Как я могу предотвратить это?
Я уже пытался пройтись по всем подпредставлениям UISearchBar , а также вызвать resignFirstResponder на этих ... но если я не сделал что-то не так - это тоже не решит .
Обновление:
На самом деле я только что получил клавиатуру, чтобы не отключать кнопку «Готово» :-D ... поэтому я «перестану» идти по этому пути, как предложил Кевин. Тем не менее, я хотел бы знать, почему клавиатура снова появилась.