单击搜索栏的取消按钮时,应从屏幕上删除键盘

时间:2014-02-12 04:15:38

标签: ios objective-c ipad

我正在使用searchBar,其中单击searchBar的取消按钮应该删除键盘。我尝试使用resignFirstResponder,但那根本不起作用。有没有人有其他出路呢?

3 个答案:

答案 0 :(得分:0)

使用此行,它会帮助你

[self.view endEditing:YES];

答案 1 :(得分:0)

在OP中没有任何代码,请尝试:

[self.view endEditing:YES];

您需要以下一种/所有方法:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
    if (searchText.length == 0) {
        [searchBar resignFirstResponder];
    }
}

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

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

答案 2 :(得分:0)

这个测试代码可以工作1000%。

在你的.h文件中

@interface ViewController : UIViewController<UISearchBarDelegate>

在viewDidLoad方法中设置委托

@property (strong, nonatomic) UISearchBar *searchBar;

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.searchBar setDelegate:self];
}
-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{

    [self.searchBar setShowsCancelButton:YES];
    return YES;
}

-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    searchBar.text = @"";
    [searchBar resignFirstResponder];
}