因此,我正在制作一个应用程序,并有解除键盘从UISearchBar和UITextFields的一些问题。这里是我的应用程序的结构:解雇键盘FirstResponder问题
NavigationController - (模态) - - > ViewC1 - (模态) - > ViewC2> ViewC3
我在ViewC1一个搜索框,并在 “搜索” 按钮键盘被按下键盘被解雇,这工作正常。但是,如果我在ViewC3中返回到ViewC1,那么当按下“搜索”按钮时键盘不再解除。在搜索栏的委托方法我已经把如下:
- (void) searchBarSearchButtonClicked:(UISearchBar *)search
{
if ([search isFirstResponder]) {
[search resignFirstResponder];
} else {
[search becomeFirstResponder];
[search resignFirstResponder];
}
}
这不解决问题,我不知道为什么键盘不解雇。作为参考,当返回到原始ViewC1时,ViewC3被解除如下:
UIViewController *parent = self.presentingViewController;
[parent.presentingViewController dismissViewControllerAnimated:YES completion:nil];
任何帮助表示赞赏,谢谢。
我建议调试搜索按钮单击方法。搜索栏及其代理是否仍然分配?在这一点上搜索也被认为是第一响应者? – 2013-04-08 15:24:28
@Ben M:它仍然被认为是第一个响应者,因此它在触发委托方法时仍然分配了委托。 – 2013-04-13 09:43:38