单击X按钮时重置UISearchBar的文本字段中的文本,但不重新签名firstresponder

Mag*_*nus 8 iphone xcode objective-c uisearchbar

我有一个UISearchBar的视图.但是,当单击搜索栏中的"X"按钮时,它会删除键盘,但不会删除搜索栏文本字段中的文本.我想要的是:当用户单击x按钮时,文本字段中的文本被重置但键盘保持不动.

我怎样才能做到这一点?

fli*_*zit 10

这似乎对我有用.确保您的View Controller是UISearchBarDelegate

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    searchBar.text = @"";
}
Run Code Online (Sandbox Code Playgroud)


小智 7

只需在searchBarCancelButtonClicked委托方法中将文本设置为nil:

searchBar.text = nil;
Run Code Online (Sandbox Code Playgroud)


Nic*_*ick -1

尝试实现UISearchBarDelegate的方法-(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar并返回NO结果。

例如:

    - (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar
    {
        return NO;
    }
Run Code Online (Sandbox Code Playgroud)