相关疑难解决方法(0)

点击X按钮时从UISearchBar中解除键盘

我正在使用UISearchBar(但不是通常联合使用的SearchDisplayController),当你点击'X'按钮时我想解除键盘.

我遵循了TomSwift的建议,当'X'被敲击并且效果很好时被叫.但是,从文本字段中退出第一个响应者并在UISearchBar实例中调用它们resignFirstResponder都不会使键盘消失.

当用户轻敲X按钮时,有没有办法摆脱键盘?

这是我为了获得'清除'通知而做的事情:

- (void)viewDidLoad:
{
    for (UIView* v in searchBar.subviews)
    {
        if ( [v isKindOfClass: [UITextField class]] )
        {
            UITextField *tf = (UITextField *)v;
            tf.delegate = self;
            break;
        }
    }    
}
Run Code Online (Sandbox Code Playgroud)

然后我有我的类设置来实现UISearchBarDelegate和UITextFieldDelegate.

将该类作为文本字段委托允许我接听此调用:

- (BOOL)textFieldShouldClear:(UITextField *)textField
{
     [textField resignFirstResponder];
     [self.searchBar resignFirstResponder];
     return YES;
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了所有我能想到的东西.我正在尝试的最后一件事是找到一种方法来发出UISearchDelegate将在我的Controller类上调用的'searchBarCancelButtonClicked',但不是我确定我怎么能这样做,因为UISearchBar似乎没有任何直接方法使用此名称调用.

iphone uitextfield uisearchbar

18
推荐指数
4
解决办法
4万
查看次数

标签 统计

iphone ×1

uisearchbar ×1

uitextfield ×1