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

时间:2012-09-28 08:53:42

标签: objective-c ios

当按下输入或用户触摸其他地方时,UISearchBar不会关闭键盘。

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

- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar

我该如何解决?

5 个答案:

答案 0 :(得分:21)

- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar {
    [aSearchBar resignFirstResponder];
}

您还必须为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
}

答案 1 :(得分:12)

在.h

中添加 UISearchBarDelegate

同样将SearchBar的对象委托设置为自我

你应该添加UISearchBarDelegate的方法:

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

编辑:以上无效,请添加:

[self.view endEditing:YES];

答案 2 :(得分:3)

单击返回按钮时,使用以下代码段关闭/隐藏键盘。

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{

    if([text isEqualToString:@"\n"])
    {        
        [searchBar resignFirstResponder];
        return NO;
    }
        return YES;
}

答案 3 :(得分:3)

当你点击完成时,swift 1.2键盘的

会隐藏,还有另一个取消功能,但是当用户点击取消时可能想要搜索另一个单词时使用它是不好的...

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

答案 4 :(得分:0)

它会起作用 -

目标c -

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
    [searchBar resignFirstResponder]; 
}

斯威夫特 -

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