我正在我的 iOS 应用程序中实现搜索,到目前为止,我正在使用 shouldReloadTableForSearchString 方法从搜索栏中获取字符串以执行搜索。但是我注意到,只要用户输入的字符串发生变化,该方法就会调用。搜索一个人的联系人很好,但这不是我使用它的目的,所以我正在寻找一种方法,只在用户单击搜索并输入他们的字符串时才开始搜索,而不是在他们打字的时候。我怎样才能做到这一点?
问问题
2224 次
3 回答
6
为搜索栏设置一个委托并实现该searchBarSearchButtonClicked:
方法。从那个方法做你的搜索。只需NO
从shouldReloadTableForSearchString
方法返回。
于 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 回答