我需要简单的文本输入来帮助进行数据过滤。理想情况下,我想保留对UISearchBar的强引用,当用户点击"搜索"时,此searchBar将成为FirstResponder(),我会设置
self.searchBar.inputAccessoryView = self.searchBar
但这似乎不起作用。 .searchBar通常不在视图控制器的视图层次结构中,我希望将其附加到键盘上。
否则我会想到另一种方法。最终,我只想尝试编辑时可以看到的文本输入,并且应该附加到工具栏上。理想情况下使用.inputAccessoryView,所以我不必费心使用键盘通知/动画
有人知道这是否可行?
答案 0 :(得分:1)
如果我理解正确,您希望使用搜索栏来触发键盘和显示用户输入的搜索词,但不希望总是在屏幕上显示搜索栏但是通过搜索栏激活a"搜索"按钮。
使用单个UISearchBar
是不可能的,但您可以使用其中两个:
inputAccessoryView
(bar2);你应该成为两个搜索栏的代表。shouldChangeTextIn
委托方法。其他事件
收到bar2可以转发到bar1,这对你来说很有意义。为了帮助您入门,我们提供了一些基本设置的代码(例如viewDidLoad
):
self.dummySearchBar = UISearchBar()
dummySearchBar.isHidden = true
dummySearchBar.delegate = self
self.visibleSearchBar = UISearchBar()
visibleSearchBar.delegate = self
dummySearchBar.inputAccessoryView = visibleSearchBar
然后,在你的"搜索"按钮处理程序,让带有附加搜索栏的键盘显示如下:
dummySearchBar.becomeFirstResponder()
注意:我在项目中有类似的设置,但为了简单起见,我使用UITextField
而不是UISearchBar
s;不过,我认为基本方法也适用于UISearchBar
。