当 UISearchBar 变为活动状态时,UISearchResultsTableView 不会出现
Posted
技术标签:
【中文标题】当 UISearchBar 变为活动状态时,UISearchResultsTableView 不会出现【英文标题】:UISearchResultsTableView doesn't appear when UISearchBar becomes active 【发布时间】:2015-12-21 13:24:34 【问题描述】:当搜索栏的文本字段变为活动状态时,我需要我的搜索栏来显示搜索结果。我用
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
调用,但没有对象立即显示 UISearchResultsTableView。 它仅在搜索文本字段中输入第一个字母时显示。
【问题讨论】:
【参考方案1】:过滤掉搜索结果的逻辑应该加入
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
委托方法。
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
可用于在开始编辑搜索栏时刷新数组对象。
【讨论】:
这不是特别需要的。当文本字段为空时,当它获得焦点时,我需要在下面显示所有可用的搜索结果。我应该调用什么方法? 如果 searchBar Text 为 nil 或为空,则分配给 tableview 的数组应该有所有结果。如果它是空的,那就是没有结果。 数组不为空,有所有结果,但不显示在iPhone屏幕上。 只有当我在搜索文本框中输入第一个字母时才会显示结果。 表格视图是否在选择searchBar之前或在searchBar上设置焦点之前显示所有结果【参考方案2】:使用这个方法:
- (void)textFieldDidBeginEditing:(UITextField *)textField;
它将在触摸文本字段时执行。
【讨论】:
以上是关于当 UISearchBar 变为活动状态时,UISearchResultsTableView 不会出现的主要内容,如果未能解决你的问题,请参考以下文章
当 UISearchBar 处于活动状态时,滚动到 UITableView 应用程序会崩溃
UISearchBar 在活动时与 UITableView 内容重叠
Objective-C - 滚动时 UISearchController 结果在 UISearchBar 上重叠