按下Enter键时,UISearchBar不会关闭键盘

ane*_*yzm 22 objective-c ios

UISearchBar不解雇时输入按下键盘或触摸用户别的地方.

我需要使用iOS键盘右下方的移除键盘按钮来移除键盘并调用:

- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Kam*_*war 21

- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar {
    [aSearchBar resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

您还必须为UISearchBar设置委托:UISearchBarDelegate

它应该工作.

以下是示例代码http://developer.apple.com/library/ios/#samplecode/ToolbarSearch/Listings/ToolbarSearch_APLToolbarSearchViewController_m.html#//apple_ref/doc/uid/DTS40009461-ToolbarSearch_APLToolbarSearchViewController_m-DontLinkElementID_9

另一个选项是我们可以使用的searchBarSearchButtonClicked.

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [searchBar resignFirstResponder];
    // You can write search code Here
}
Run Code Online (Sandbox Code Playgroud)

  • 当用户尝试键入时,这会解除键盘!应该阅读searchBarTextDidEndEditing吗?searchBarSearchButtonClicked是一个更好的解决方案 (6认同)

Par*_*iya 12

在.h中添加UISearchBarDelegate

同时将SearchBar的对象委托设置为self.

你应该添加UISearchBarDelegate方法:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [searchBar resignFirstResponder];
    // Do the search...
}
Run Code Online (Sandbox Code Playgroud)

编辑:上面不起作用然后添加这个:

[self.view endEditing:YES];
Run Code Online (Sandbox Code Playgroud)