iPhone SDK: UISearchBar: searchBarTextDidEndEditing не срабатывает - PullRequest
4 голосов
/ 29 июля 2010

Я использую панель поиска на моем столе, которая должна быть довольно простой. У меня есть такие:

- (void)searchBarTextDidBeginEditing:(UISearchBar *)theSearchBar { 
 NSLog(@"searchBarTextDidBeginEditing");
}

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {    
    NSLog(@"The search text is: %@", searchText);
}

- (void)searchBarTextDidEndEditing:(UISearchBar *)theSearchBar {
    NSLog(@"searchBarTextDidEndEditing");
    [theSearchBar resignFirstResponder];
}

И searchBarTextDidBeginEditing срабатывает, и я получаю это сообщение в своем журнале, но когда я нажимаю за пределами панели поиска над клавиатурой, я не получаю событие searchBarTextDidEndEditing, поэтому не могу заставить клавиатуру исчезнуть - сообщение даже не появляются в журнале.

textDidChange работает, так что просто searchBarTextDidBeginEditing это не так.

Есть идеи? Спасибо !!

Ответы [ 3 ]

9 голосов
/ 01 февраля 2011

Даже я столкнулся с той же проблемой.

Пожалуйста, найдите с решением ниже

Реализация ниже методов

1.searchBarTextDidEndEditing
2.searchBarSearchButtonClicked

и убедитесь, что вы [UISearchchbar resignfirstresponder] во втором методе, упомянутом выше

2 голосов
/ 29 марта 2011

Как только я реализовал searchBarSearchButtonClicked , который решил это для меня.

0 голосов
/ 14 мая 2019

Метод

  • (void) searchBarTextDidEndEditing: (UISearchBar *) searchBar

вызывается только при вызове [searchBar resignFirstResponder].

Лучшее место для вызова [searchBar resignFirstResponder] - метод

  • (void) searchBarSearchButtonClicked: (UISearchBar *) searchBar
...