Подтвердить что ты не робот

SearchBarCancelButtonClicked метод делегата не вызывается. Есть ли способ позвонить?

UIViewController для реализации представления для размещения UITableView UISearchBar и его реализации. Но вы не можете вызвать searchBarCancelButtonClicked. Не знаю, в чем причина.

4b9b3361

Ответ 1

Убедитесь, что ваш UIViewController установлен как делегат вашего UISearchBar и что он использует протокол UISearchBarDelegate.

Ответ 2

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
   // This method has been called when u enter some text on search or Cancel the search.
   // so make some condition for example:

   if([searchText isEqualToString:@""] || searchText==nil) {
        // Nothing to search, empty result.
        searching = NO;
        [mytableView reloadData];
    }
}

Надеюсь, что это поможет.

Ответ 3

Причина, по которой searchBarCancelButtonClicked не срабатывает, может быть вызвана тем, что ваш UISearchBar не показывает кнопку "Отмена" . Вы можете отобразить кнопку "Отмена" следующим образом:

searchBar.showsCancelButton = true

У меня была та же проблема, и при нажатии кнопки "Отмена" сделана searchBarCancelButtonClicked fire, как ожидалось.

Ответ 4

В моем случае был неконтролируемый userInteractionEnabled = NO

Ответ 5

Я столкнулся с той же проблемой, когда у меня был UISearchBar внутри UIScrollView. Насколько я понимаю, вопрос был у вас внутри UITableView, который является подклассом UIScrollView.

Что помогло в моем случае установить

tableView.delaysContentTouches = NO;

Кажется, что метод searchBarCancelButtonClicked не работает с этим набором YES, который является настройкой по умолчанию.