UISearchBar 在尝试选择 UICollectionViewCell 时退出第一响应者
Posted
技术标签:
【中文标题】UISearchBar 在尝试选择 UICollectionViewCell 时退出第一响应者【英文标题】:UISearchBar resigns first responder when trying to select UICollectionViewCell 【发布时间】:2017-03-30 01:19:28 【问题描述】:我有一个UIViewController
,用作共享抽屉,从屏幕底部向上滑动。
我在它下面有一个UISearchBar
和UICollectionView
,在搜索栏中输入更新集合视图没有问题。
当搜索栏处于活动状态时,我希望能够在集合视图中选择单元格。但是,每当我点击搜索栏以外的任何内容时,都会关闭键盘。我习惯于添加UITapGestureRecognizer
或手动调用searchBar.resignFirstResponder()
,但在这种情况下,我无法弄清楚如何不关闭键盘。
视图控制器上没有其他手势识别器。在键盘存在时允许(多个)选择集合视图有什么想法吗?
【问题讨论】:
你实现textFieldShouldReturn
方法了吗?
【参考方案1】:
@nayem 的评论让我想到了searchBarShouldEndEditing
委托方法。搜索栏确实在resigningFirstResponder
之前发送此消息,我可以返回false
。问题解决了。
【讨论】:
【参考方案2】:取消隐藏键盘
self.view.endEditing(false)
你在找这个吗?
如
resignFirstResponder
你不能传递一个布尔值来隐藏或取消隐藏
我们也可以通过以下方法做到这一点,始终以编程方式将取消按钮添加到搜索栏
func searchBarTextDidBeginEditing(searchBar: UISearchBar)
searchBar.showsCancelButton = true;
另外,应该尝试将搜索栏的 IBOutlet 删除为:
self.yourSearchBar.endEditing(false)
注意:yourSearchBar 是删除 IBOutlet 时提供的搜索栏名称。
【讨论】:
不...看来视图控制器正在自动发送该消息,我无法阻止它。 你能分享你在控制器故事板中使用的层次结构的截图 @Raesu 请检查更新的答案并允许我深入挖掘。以上是关于UISearchBar 在尝试选择 UICollectionViewCell 时退出第一响应者的主要内容,如果未能解决你的问题,请参考以下文章
通过 UISearchBar 使用 CoreData 过滤查询
选择标签栏项目时激活 UISearchBar - 帮助还是阻碍?
UICollectionView insertSections 错误 - NSInvalidArgumentException 原因 setObjectForKey 对象不能为 nil UIColle