Я делаю опцию UISearchBar на панели навигации моего приложения.
Мое приложение состоит из нескольких просмотров и подпредставлений.
У меня есть это основное мнение, которое имеет 3 других взгляда на себя. одна из них пуста (на данный момент), остальные 2 имеют табличные представления на них.
Я хочу, чтобы моя клавиатура отображалась при поиске и скрывалась, когда я выполняю фактический поиск или когда я касаюсь / щелкаю за пределами панели поиска.
Я использую searchbardelegate как требуется.
Я могу скрыть клавиатуру, используя [searchBar resignFirstResponder] следующими способами.
- Когда я нажимаю клавишу возврата.
- Когда я отменяю поиск вручную
- Когда я нажимаю любую из кнопок клавиатуры для поиска или отмены.
Когда я касаюсь пустой части экрана, используя
- (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];
}
То, что я, похоже, не могу сделать, это заставить его реагировать на прикосновение к одному из моих двух видов таблицы. Или когда я пополняю основной вид, чтобы он содержал что-то совершенно другое.
Я пытался изменить метод touchesbegan, чтобы оставить панель поиска при прикосновении к табличным представлениям, но пока это не сработало.
Я пробовал несколько других вещей, найденных моим дорогим другом мистером. Google, но все это, кажется, что-то другое, чем мне нужно.
У кого-нибудь есть идеи, что я могу сделать, чтобы решить эту проблему?
EDIT:
Похоже, что при использовании точек останова touch-began-метод реагирует на фоновое представление, но не реагирует, когда я касаюсь либо вида таблицы, либо панели навигации (содержащей панель uisearch).