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