是否有可能以编程方式重置具有searchDisplayController的UISearchbar,该活动已包含文本?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView == self.searchDisplayController.searchResultsTableView) {
searchDisplayController.searchResultsTableView.hidden = YES;
searchBar.showsCancelButton = NO;
[searchBar resignFirstResponder];
}
}
此解决方案正常运行,但searchBar中仍有文本。如果我添加这些代码行:
searchBar.text = @"";
总是留下黑色透明视图。
任何解决方案?
答案 0 :(得分:6)
你好。这是用户点击取消时调用的委托方法。如果您想以不同方式连接它,只需将搜索栏声明为插座并引用它即可。无论如何:
-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
searchBar.text = @"";
[searchBar resignFirstResponder];
}
答案 1 :(得分:4)
非常确定您正在寻找的是UISearchDisplayController.active
从SDK:
@property(nonatomic, getter=isActive) BOOL active
如果直接设置此值,则无需动画即可执行任何更改。使用setActive:animated:如果状态更改应设置动画。
当用户专注于托管搜索栏的搜索字段时,搜索显示控制器会自动显示搜索界面。您可以使用此属性强制显示搜索界面。
答案 2 :(得分:1)
这个线程太老了,它有灰尘。仍然在这里我们很快就这样
<#your UISearchController variable#>.isActive = false
答案 3 :(得分:0)
你不必退出firstResponder
答案 4 :(得分:0)
[self.searchBar resignFirstResponder]
答案 5 :(得分:0)
您也可以显式隐藏resultsTableView,如果这是您想要的:
searchDC.searchResultsTableView.hidden=YES;
(searchDC是UISearchDisplayController的一个实例)
这将帮助您隐藏取消按钮和内容:http://www.alexandre-gomes.com/?p=418