我正在我的iOS应用程序中实现搜索,到目前为止,我正在使用shouldReloadTableForSearchString方法从搜索栏中获取字符串以执行搜索。但是我注意到只要用户输入的字符串发生更改,该方法就会调用。搜索联系人的联系人很有用,但这不是我使用它的原因所以我正在寻找一种只在用户点击搜索并开始搜索时才开始搜索的方法字符串不是他们打字时。我该怎么做呢?
答案 0 :(得分:6)
为搜索栏设置委托并实施searchBarSearchButtonClicked:
方法。从这种方法中搜索。只需从NO
方法返回shouldReloadTableForSearchString
。
答案 1 :(得分:1)
您可以使用UISearchDisplayDelegate
searchDisplayController:shouldReloadTableForSearchString:
你应该能够返回false来停止搜索。
类似
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
return false;
}
然后附加搜索按钮按下事件,通过抓取搜索文本进行实际重新加载,执行搜索,然后根据搜索重新加载表格。
如果这不是您的解决方案,那么请查看该delegate课程以了解正确的事件。
答案 2 :(得分:0)
实施searchController.searchBar.delegate
& searchBarSearchButtonClicked
方法:
self.searchController.searchBar.delegate = self;
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
//enter your search code
}