相关疑难解决方法(0)

UISearchbar clearButton强制键盘出现

我有一个UISearchBar,它充当表视图的实时过滤器.当键盘通过endEditing:解除时,查询文本和灰色圆形"清除"按钮保持不变.从这里,如果我点击灰色的"清除"按钮,键盘会在文本被清除时重新出现.

我该如何防止这种情况?如果键盘当前未打开,我希望该按钮在不重新打开键盘的情况下清除文本.

当我点击清除按钮时,会调用一个协议方法.但是向UISearchBar发送resignFirstResponder消息对键盘没有任何影响.

iphone keyboard appearance uisearchbar uisearchbardelegate

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

点击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万
查看次数

按下Uisearchbar x按钮

按'x'按钮时如何处理事件?

我尝试这种方法但不起作用.

-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{

}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

xcode delegates uisearchbar ios

17
推荐指数
6
解决办法
2万
查看次数

如何在Cocoa中为现有协议添加方法?

我想扩展或添加另一种方法到现有的协议.虽然协议特别重要,但这正是我想要做的.

@protocol NSMatrixDelegate
- (void)myNewMethod:(id)sender;
@end
Run Code Online (Sandbox Code Playgroud)

编译器警告我有相同协议的重复声明.我该怎么做呢?

谢谢.

cocoa protocols

7
推荐指数
1
解决办法
1155
查看次数