不调用searchBarCancelButtonClicked委托方法.有什么方法可以打电话吗?

Sza*_*kma 25 iphone uisearchbar uisearchbardelegate

UIViewController用于实现放置UITableView UISearchBar并正在实现的视图.但你不能调用searchBarCancelButtonClicked.不知道是什么原因.

Gen*_*ari 6

确保将UIViewController设置为UISearchBar的委托,并且它采用UISearchBarDelegate协议.

  • 这就是我拥有它的方式...所有其他委托方法都有效,只是这个没有被调用,可能是sdk的一个bug (9认同)
  • 添加了`searchController.searchBar.delegate = self`并调用了该方法.谢谢. (3认同)

Chr*_*sov 6

searchBarCancelButtonClicked无法触发的原因可能是因为您的UISearchBar未显示"取消"按钮.您可以像这样显示"取消"按钮:

searchBar.showsCancelButton = true
Run Code Online (Sandbox Code Playgroud)

我有同样的问题,并使取消按钮显示searchBarCancelButtonClicked火如预期.

  • 就我而言,我在条形窗口->中单击x,而不是取消按钮。[我当时以为是...]使用此行代码,导致“取消”一词出现在我的栏的右边,然后我意识到了自己的错误。谢谢! (4认同)

小智 5

- (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];
    }
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.