сойти с клавиатуры при потере фокуса на панели поиска

Я создаю опцию панели 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).

7
задан Totumus Maximus 20 September 2011 в 10:17
поделиться