我怎样才能迫使编程在的UISearchBar搜索?(How can I programmatical

2019-07-31 14:58发布

我怎么能强迫的UISearchBar自动启动一个新的搜索(如按下搜索按钮)? 有没有一种简单的方法来实现这一目标?

Answer 1:

我发现我需要改变搜索字段的值编程,使UISearchViewController自动执行搜索之前设置UISearchViewController为主动:

// Need to set the searchDisplayController to active to 
// make the changes in search text trigger a search.
self.searchDisplayController.active = YES;
self.searchDisplayController.searchBar.text = @"New search string";

斯威夫特4

self.searchController.isActive = true
self.searchController.searchBar.text = "New search string"


Answer 2:

只要有搜索输入字段成为第一个响应者:

[self.searchInputField becomeFirstResponder];


Answer 3:

你可以强迫你的搜索栏,

目标C:

[self searchBar:yourSearchBarName textDidChange: yourSearchingString];

雨燕3.0:

self.searchBar(self.yourSearchBarName, textDidChange: yourSearchingString)

这将触发你的搜索栏。



Answer 4:

是的,你只需要做出的隐式调用searchBarSearchButtonClicked:UISearchbarDelegate 。 看看到官方文档关于该委托的详细信息。



Answer 5:

看来愚蠢的,但工作的,所以它不是哑巴;)

NSString * forceReload = self.searchDisplayController.searchBar.text;
self.searchDisplayController.searchBar.text = forceReload;


Answer 6:

确保你想要的文字是搜索栏,你可以调用内部之后self.searchBarSearchButtonClicked(searchBar) (通过在搜索栏)假设你已经实现了这个UISearchBarDelegate方法searchBarSearchButtonClicked(_ searchBar: UISearchBar)



Answer 7:

这个工作 - 斯威夫特4

   searchBar.text="Amber"
   self.searchBar(self.searchBar, textDidChange: "Amber")


文章来源: How can I programmatically force a search in the UISearchBar?