UISearchbar键盘没有消失

时间:2013-07-30 06:45:15

标签: ios uiview uisearchbar uisearchdisplaycontroller

我有一个视图控制器,其视图设置方式使其具有3个按钮和其他子视图。单击其中一个按钮(第3个按钮),我将另一个视图控制器的视图作为子视图添加到self.view(在此视图中,我有一个带键盘的活动状态的搜索显示控制器)

我可以使用以下代码实现此目的

 [self.searchDisplayController setActive:YES];
    [self.searchDisplayController.searchBar setShowsCancelButton:NO];
    [self.searchDisplayController.searchBar becomeFirstResponder];

现在当我按下第二个按钮时,我尝试从超视图中删除此视图,并尝试按以下方式在viewWillDisappear[self.view endEditing:YES])中重新设置键盘,但键盘仍然没有辞职

一个小编辑,如果我注释掉下面的一段代码,它就会辞职

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {

    if (self.dataSource.count)
        return YES;
    return NO;
}

3 个答案:

答案 0 :(得分:0)

尝试在viewWillDisappear

中撤销UISearchBar
[yourSearchBar resignFirstResponder];

答案 1 :(得分:0)

在调用第二个按钮的方法内,只需输入

即可
 [self.searchDisplayController.searchBar resignFirstResponder];

单独保留viewWillDisappear。这适用于视图完成时所做的任何动画,以及视图何时离开。如果您将显示控制器设置为重新响应响应者,则应立即将其消除。

希望这有帮助!

答案 2 :(得分:0)

您可以使用NSNotificationCenter执行此操作,如下所示。

//。m file:

  

[[NSNotificationCenter defaultCenter] addObserver:self   selector:@selector(ResignFirstResponder :) name:@“resign”object:nil];

在ResignFirstResponder中:

  

[searchBar resignFirstResponder];

在addObserver上面使用哪个类,你必须实现该方法。

//。你要发送动作的文件,调用方法如下。 [在第二个按钮上单击]

  

[[NSNotificationCenter defaultCenter] postNotificationName:@“resign”   对象:无];

相关问题