如何在UISearchBar中触发取消按钮?

时间:2013-04-11 20:19:35

标签: iphone ios uisearchbar

如何以编程方式触发UISearchBar中的取消按钮,就像您点击了取消按钮一样?

我在UITableView的顶部有一个UISearchBar,在搜索之后,当有人选择一行时,我想在UISearchBar中以编程方式触发取消按钮?

编辑:没有用户互动。

6 个答案:

答案 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

这些是完成上述任务的一些变体