Objective c 当UI搜索栏';搜索“;按钮按下了吗?

Objective c 当UI搜索栏';搜索“;按钮按下了吗?,objective-c,ios,uisearchbar,Objective C,Ios,Uisearchbar,我已经实现了一个UISearch栏,其中设置了搜索功能,但是当我按下键盘上的“搜索”按钮时,显示什么也没有发生。当按下“搜索”按钮时,如何使键盘隐藏,同时保持搜索栏中的文本完好无损(以保持搜索结果的存在) 来自: 要关闭键盘,请调用当前为第一响应程序的基于文本的视图的resignFirstResponder方法 因此,您应该在您的UISearchBarDelegate中执行此操作: - (void)searchBarSearchButtonClicked:(UISearchBar *)searc

我已经实现了一个UISearch栏,其中设置了搜索功能,但是当我按下键盘上的“搜索”按钮时,显示什么也没有发生。当按下“搜索”按钮时,如何使键盘隐藏,同时保持搜索栏中的文本完好无损(以保持搜索结果的存在)

来自:

要关闭键盘,请调用当前为第一响应程序的基于文本的视图的resignFirstResponder方法

因此,您应该在您的
UISearchBarDelegate
中执行此操作:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [searchBar resignFirstResponder];
    // Do the search...
}
Swift 4
确保在UIViewController中定义了UISearchBarDelegate

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
    searchBar.resignFirstResponder()
}


这对我来说只起到了部分作用,因为如果我辞去第一响应者的职务,取消按钮将被禁用……它无法使其保持接收触摸的功能。UISearchBar的取消按钮的存在为iPhone用户提供了一种关闭键盘的方法,因为iPhone键盘没有关闭按钮。如果出于其他原因需要取消按钮,您必须自己实现它,因为UISearchBar不允许您完全访问该控件。我收到了此错误消息,致命错误:数组索引超出范围