如何使用UIsearchBar Delegate方法关闭键盘?我试过各种方法,但没有用.

Log*_*ath 13 iphone ios

嗨我在我的应用程序中使用UIsearchBar,我尝试了UISearchBar Delegate中的所有方法来解除键盘但没有用.任何人都可以帮助我.

我试过的一些代码

1.

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

2.

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

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

}
Run Code Online (Sandbox Code Playgroud)

3.

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

nsg*_*ver 29

首先,你应该UISearchBarDelegate 在你的班级实施并检查你是否已经连接到你的UISearchBar

如果您UISearchBar通过IB 添加,那么您应该选择UISearchBar的委托属性到文件的所有者.你应该确保你所连接 IBOutletUISearchBar代码正确.

如果您要UISearchBar通过代码添加,那么您应该在代码中自己设置代理searchBar.delegate=self;

下一步是确保调用委托方法,这很明显,如果你正确连接委托,最好检查东西是在代码中放置断点指针或打印NSLog.

如果要在用户单击搜索时隐藏,最后使用此方法隐藏键盘

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

或者您可以在编辑完成时尝试

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

  • - (void)searchBarTextDidEndEditing:(UISearchBar*)searchBar {[searchBar1 resignFirstResponder]; } (2认同)

Bal*_*alu 9

试试这个:

在搜索栏上设置代理并检查IBOutlet是否已连接

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