Я создаю опцию UISearchBar в навигационной панели моего приложения. Мое приложение состоит из нескольких видов и подзонов. У меня есть это основное видение, которое имеет 3 других взгляда на себя. один из них пуст (на данный момент), у остальных 2 есть табличные представления на них.сбрасывать клавиатуру при потере фокуса на uisearchbar
Я хочу, чтобы моя клавиатура отображалась, когда я ищу и скрываю, когда делаю настоящий поиск, или когда я касаюсь/выхожу за пределы uisearchbar. Я использую searchbardelegate как требуется.
Я могу скрыть клавиатуру с помощью [searchBar resignFirstResponder] следующими способами.
- Когда im нажимает клавишу возврата.
- Когда я отменяю поиск вручную
- Когда я нажимаю любую из кнопок клавиатуры для поиска или отмены.
Когда я дотронуться пустую часть экрана с помощью
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [[event allTouches] anyObject]; if ([mySearchBar isFirstResponder] && [touch view] != mySearchBar) { [mySearchBar resignFirstResponder]; } [super touchesBegan:touches withEvent:event]; }
Что я, кажется, не в состоянии сделать, это сделать его реагировать на прикосновения одного из моих 2 tableviews. Или когда im наполняет mainview, чтобы содержать что-то совершенно другое.
Ive попробовал изменить метод touchhesbegan, чтобы отменить поисковую панель при касании таблиц, но до сих пор не работал.
Я пробовал несколько других вещей, найденных моим дорогим другом. google, но все это похоже на то, что мне нужно.
У кого-нибудь есть идеи, что я могу сделать, чтобы исправить эту проблему?
EDIT: Похоже, что при использовании контрольных точек метод touchhesbegan реагирует на backgroundview, но не реагирует, когда я касаюсь любого из табличных представлений или навигационной панели (содержащей uisearchbar).