如何以编程方式触发UISearchBar中的取消按钮,就像您点击了取消按钮一样?
我在UITableView的顶部有一个UISearchBar,在搜索之后,当有人选择一行时,我想在UISearchBar中以编程方式触发取消按钮?
编辑:没有用户互动。
答案 0 :(得分:60)
对于使用搜索显示控制器的视图控制器,您可以设置
self.searchDisplayController.active = NO;
// or:
[self.searchDisplayController setActive:NO animated:YES];
关闭搜索界面。
答案 1 :(得分:30)
您需要实施UISearchBarDelegate
。完成后,请使用:
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
告诉代表点击了取消按钮。
然后使用:
[self searchBarCancelButtonClicked:yourSearchBar];
答案 2 :(得分:24)
对于新版UISearchController(2014年推出iOS 8版),您可以致电:
[self.searchController setActive:FALSE];
或
self.searchController.active = FALSE;
(没有动画标志,我发现它总是动画。)
答案 3 :(得分:5)
对于iOS 8,使用UISearchController
来以编程方式实现取消按钮操作,
使用:
[self.searchController setActive:NO];
答案 4 :(得分:0)
对于Swift 4.2版本,您可以编写以下代码:
searchController?.isActive = false
答案 5 :(得分:0)
self.navigationItem.searchController?.isActive = false // above iOS 8.0
// or:
self.searchDisplayController.active = NO; // was deprecated in iOS 8.0
// or:
[self.searchDisplayController setActive:NO animated:YES]; // Obejective-C
这些是完成上述任务的一些变体