2012-04-19 135 views
9

我的鍵盤與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

回答

17

將這個進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

2

結合上述回答和檢查後退按鈕將在本

- (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]; 

}