我有UISearchDisplayController
用于显示一长串供用户选择的选项。我使用控制器提供的搜索栏过滤列表。
一切正常,除了在搜索栏中输入文字之外我无法显示结果表。我想让表格显示我的所有结果,即使搜索栏中没有文字也是如此。目前,当没有文字时,我只是有一个暗淡的底层视图。
这可能吗?或者我应该不打扰UISearchDisplayController
,只是在我显示的另一个tableview中有一个搜索栏,然后将其从堆栈中弹出?
答案 0 :(得分:3)
要在键盘外观时使用空的searchBar立即显示搜索结果,请将以下代码添加到ViewController:
-(void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller {
[controller.searchBar.delegate searchBar:controller.searchBar textDidChange:@" "];
}
要在用户输入时保持表格显示结果输入一些文本然后清除searchBox,请添加:
-(void)searchDisplayController:(UISearchDisplayController *)controller didHideSearchResultsTableView:(UITableView *)tableView {
[controller.searchBar.delegate searchBar:controller.searchBar textDidChange:@" "];
}
不要忘记在 searchDisplayController中返回YES:shouldReloadTableForSearchString:
答案 1 :(得分:0)
通常,您可以首先将所有内容加载到一个数组中,然后将表格视图显示为“正常”。
一旦这样做,创建一个包含
内搜索结果的第二个数组- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
然后,在表视图的委托/数据源方法中,通过检查确定您所在的上下文
if (_tableView == self.searchDisplayController.searchResultsTableView)