Ios UI搜索栏如何关闭键盘并选择项目

Ios UI搜索栏如何关闭键盘并选择项目,ios,swift,uitableview,uisearchbar,Ios,Swift,Uitableview,Uisearchbar,出于各种原因,我单独使用UISearchBar来过滤UITableView的内容。过滤效果很好。但是,它需要两次点击来选择某个内容。第一次轻触关闭键盘,然后第二次轻触选择UITableView中的项目。有没有一种方法可以让我轻触键盘并选择一个项目?对于UITableView,您可以使用: func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { superview?.endEditing(true) } 当拖动表格视图

出于各种原因,我单独使用UISearchBar来过滤UITableView的内容。过滤效果很好。但是,它需要两次点击来选择某个内容。第一次轻触关闭键盘,然后第二次轻触选择UITableView中的项目。有没有一种方法可以让我轻触键盘并选择一个项目?

对于
UITableView
,您可以使用:

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
    superview?.endEditing(true)
}
当拖动表格视图时,将结束编辑

从更一般的意义上讲,
endEditing(Bool)
函数在
UIView
上调用时,会查看整个子层次结构的视图,如果找到编辑文本元素,则会将其删除。该参数用于确定是应要求视图辞去第一响应者的职务,还是仅强制视图辞去第一响应者的职务

根据文档:“此方法查看当前作为第一响应者的文本字段的当前视图及其子视图层次结构。如果找到一个,它将要求该文本字段作为第一响应者辞职。如果force参数设置为true,则从未询问该文本字段;它将被迫辞职。”

这意味着您可以在
didSelectItemAt
中直接调用
endEditing(true)
,只需确保在将搜索栏作为子视图的视图中调用它即可。或者直接在搜索栏上调用它