如何强制 UISearchBar 自动开始新搜索(如按下搜索按钮)?有没有简单的方法来实现这一目标?
问问题
19938 次
9 回答
23
我发现在以编程方式更改搜索字段的值之前,我需要将 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"
于 2014-06-17T11:26:25.163 回答
6
只需让搜索输入字段成为第一响应者:
[self.searchInputField becomeFirstResponder];
于 2012-09-16T15:02:40.840 回答
4
你可以强制你的搜索栏,
目标 C:
[self searchBar:yourSearchBarName textDidChange: yourSearchingString];
斯威夫特 3.0:
self.searchBar(self.yourSearchBarName, textDidChange: yourSearchingString)
这将触发您的 searchBar。
于 2017-08-05T07:43:53.307 回答
2
在确保您想要的文本在您的搜索栏中之后,您可以调用self.searchBarSearchButtonClicked(searchBar)
(在您的搜索栏中传递)假设您已经实现了这个 UISearchBarDelegate 方法searchBarSearchButtonClicked(_ searchBar: UISearchBar)
于 2018-05-04T11:49:04.577 回答
2
let searchBar: UISearchBar = /* The Searchbar */
searchBar.delegate?.searchBar?(searchBar, textDidChange: "")
searchBar.text = ""
于 2019-07-23T07:56:40.967 回答
1
searchBarSearchButtonClicked:
是的,您只需要隐式调用UISearchbarDelegate
. 查看官方文档以获取有关此代表的更多信息。
于 2012-09-16T14:30:08.510 回答
0
斯威夫特 5
如果你只有一个 UISearchBar(不是 UISearchViewController):
let searchBar: UISearchBar
searchBar.text = "foo" // Reset the search text
searchBar.becomeFirstResponder() // Select the field and bring up the keyboard
于 2022-01-27T20:26:39.403 回答
0
看起来很愚蠢,但很有效,所以它并不愚蠢;)
NSString * forceReload = self.searchDisplayController.searchBar.text;
self.searchDisplayController.searchBar.text = forceReload;
于 2016-03-30T20:22:57.417 回答
-1
这行得通 - 斯威夫特 4
searchBar.text="Amber"
self.searchBar(self.searchBar, textDidChange: "Amber")
于 2019-06-16T17:52:33.183 回答