UISearchBar 在尝试 select UICollectionViewCell 时退出第一响应者

UISearchBar resigns first responder when trying to select UICollectionViewCell

我有一个UIViewController作为共享抽屉,从屏幕底部向上滑动。

我在它下面有一个 UISearchBarUICollectionView,在搜索栏中输入可以毫无问题地更新集合视图。

当搜索栏处于活动状态时,我希望能够 select 集合视图中的单元格。但是,每当我点击搜索栏以外的任何内容时,键盘都会消失。我习惯于必须添加 UITapGestureRecognizer 或手动调用 searchBar.resignFirstResponder(),但在这种情况下,我不知道如何不关闭键盘。

视图控制器上没有其他手势识别器。关于在键盘存在时允许(多个)selection 集合视图有什么想法吗?

取消隐藏键盘

self.view.endEditing(false)

你在找这个吗?


resignFirstResponder

您不能传递布尔值来隐藏或取消隐藏



我们也可以使用以下方法来做到这一点,方法是始终以编程方式向搜索栏添加取消按钮

    func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
        searchBar.showsCancelButton = true;
    }

此外,应该通过删除搜索栏的 IBOutlet 来尝试:

self.yourSearchBar.endEditing(false)

注意:yourSearchBar 是在删除 IBOutlet 时提供的搜索栏的名称。

@nayem 的评论让我想到了 searchBarShouldEndEditing 委托方法。搜索栏确实会在 resigningFirstResponder 之前发送此消息,我可以 return false。问题已解决。