3

我正在我的 iOS 应用程序中实现搜索,到目前为止,我正在使用 shouldReloadTableForSearchString 方法从搜索栏中获取字符串以执行搜索。但是我注意到,只要用户输入的字符串发生变化,该方法就会调用。搜索一个人的联系人很好,但这不是我使用它的目的,所以我正在寻找一种方法,只在用户单击搜索并输入他们的字符串时才开始搜索,而不是在他们打字的时候。我怎样才能做到这一点?

4

3 回答 3

6

为搜索栏设置一个委托并实现该searchBarSearchButtonClicked:方法。从那个方法做你的搜索。只需NOshouldReloadTableForSearchString方法返回。

于 2013-09-01T22:31:34.620 回答
1

你可以使用委托方法UISearchDisplayDelegate searchDisplayController:shouldReloadTableForSearchString:

您应该能够返回 false 以停止搜索。

就像是

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
    return false;
}

然后附加搜索按钮按下事件,通过抓取搜索文本执行实际重新加载,执行搜索,然后根据搜索重新加载表。

如果这不是您的解决方案,那么请查看该委托类以获取正确的事件以采取行动。

于 2013-09-01T22:39:54.680 回答
0

实现searchController.searchBar.delegate&searchBarSearchButtonClicked方法:

self.searchController.searchBar.delegate = self; 
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
      //enter your search code
}
于 2016-05-15T05:57:02.713 回答