如何在ios上的UINavigationBar后退按钮上按下后隐藏键盘

问题描述:

我的键盘与textView一起出现,我想在用户按导航栏上的后退按钮时隐藏它。如何在ios上的UINavigationBar后退按钮上按下后隐藏键盘

我已经试过这样:

-(void)viewWillDisappear:(BOOL)animated{ 

    [myTextView resignFirstResponder]; 
} 

这:

-(void)viewDidDisappear:(BOOL)animated{ 

    [myTextView resignFirstResponder]; 
} 

但它不工作,我该怎么办呢?

编辑:

我发现这里的解决方案:

iPad keyboard will not dismiss if modal ViewController presentation style is UIModalPresentationFormSheet

+0

完成确保IBoutlets正确绑定和viewDid/WillDisappear正在通过把的NSLog语句称为 – 2012-04-19 12:59:10

+0

你不应该甚至有自己辞退急救员。当视图离开屏幕时,它应该自动放弃并让键盘消失。您可以通过使用“主 - 细节应用程序”模板为iphone创建新项目来测试此行为。打开故事板并转到详细信息屏幕。将“UITextField”添加到视图并运行该应用程序。当您在该字段中点击时,会出现键盘,当您点击导航栏上的后退按钮时,它会消失。 – DBD 2012-04-19 13:03:18

+0

是真的,但是当我按下一个按钮时,一个模式表单出现与UINavigationController,我推另一个按钮导航到另一个视图,我推入一个textView,键盘出现,我回到了先前的viewController和keybord仍然存在。 – Anthony 2012-04-23 08:06:53

将这个进buttonPress方法 -

[self.view.window endEditing:YES]; 

编辑 - 这也让你的内容当按下“返回”按钮时正在编辑的文本

+0

为此,你必须覆盖默认的左侧导航barbutton项目 – 2012-04-19 13:08:48

+0

我知道 - 非常简单的tho – SomaMan 2012-04-19 15:49:17

+0

它适用于我... – iSwaroop 2013-11-09 23:32:52

结合上述回答和检查后退按钮将在本

- (void)viewWillDisappear:(BOOL)animated{ 
if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) { 
    // back button was pressed. We know this is true because self is no longer 
    // in the navigation stack. 
    [self.view.window endEditing:YES]; 
} 

[super viewWillDisappear:animated]; 

}