我有一个视图控制器,其视图设置方式使其具有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;
}
答案 0 :(得分:0)
尝试在viewWillDisappear
[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” 对象:无];