Ios 当点击视图时,UISearchBar有时会辞职

Ios 当点击视图时,UISearchBar有时会辞职,ios,swift,uisearchbar,uigesturerecognizer,Ios,Swift,Uisearchbar,Uigesturerecognizer,我的视图控制器设置如下:UISearchBar位于屏幕顶部,键盘位于底部,以及它们之间的其他视图:自定义UIView,UIView,UITableView。当我点击表格视图单元格和ui按钮UIViews内的ui按钮时,我可以成功触发我的操作,同时保持ui搜索栏在屏幕上仍然可见。但当我点击没有按钮的UIViews时,这会触发searchbarshouldediting,就像搜索栏失去焦点一样。我想禁用此行为,只让“取消”按钮和键盘的“完成”按钮触发UISearchBar关闭 我认为这与冒泡效应有关

我的视图控制器设置如下:
UISearchBar
位于屏幕顶部,键盘位于底部,以及它们之间的其他视图:自定义
UIView
UIView
UITableView
。当我点击表格视图单元格和
ui按钮
UIView
s内的
ui按钮时,我可以成功触发我的操作,同时保持
ui搜索栏在屏幕上仍然可见。但当我点击没有按钮的
UIView
s时,这会触发
searchbarshouldediting
,就像搜索栏失去焦点一样。我想禁用此行为,只让“取消”按钮和键盘的“完成”按钮触发
UISearchBar
关闭

我认为这与冒泡效应有关,并尝试实施此修复:

extension UIViewController : UIGestureRecognizerDelegate{

    public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
        return touch.view == gestureRecognizer.view
    }
    @IBAction func didTap(_ gestureRecognizer : UITapGestureRecognizer ) {
        //
    }
但这并没有解决这个问题,
UISearchBar
仍然调用
searchbarshouldenediting
。当然,我可以将逻辑添加到
搜索栏shouldendediting
,以返回
false
,但我不确定这是否足够有效


如何确保在点击其他元素(如
UIView
s)时,
UISearchBar
保持在原位?

您将UITableView键盘关闭模式设置为什么?UITableView键盘关闭模式保持默认状态,即不关闭。您将UITableView键盘关闭模式设置为什么?UITableView键盘关闭模式保留默认值,即“不驳回”