2010-08-20 235 views

回答

17

我不確定你想完成什麼,但也許這可以幫助你:註冊NSNotificationCenter以接收UIKeyboardWillHideNotification和/或UIKeyboardDidHideNotification。

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(myKeyboardWillHideHandler:) 
              name:UIKeyboardWillHideNotification 
              object:nil]; 

... 

- (void) myKeyboardWillHideHandler:(NSNotification *)notification { 
    NSLog(@"Keyboard wants to hide. What a coward."); 
} 
+0

thaaaaank你的偉大工程,但不是UIKeyboardWillHideNotification 我使用將顯示... 爲我的偉大工程 – Momi 2010-08-20 16:46:10

0

把這個viewDidLoad

// register to track event when user presses hide keyboard button on bottom right cornor for iPAD 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldShouldReturn:) name:UIKeyboardWillHideNotification object:nil]; 

,這將使當iPad是按下鍵盤上下鍵得到所謂的- (BOOL)textFieldShouldReturn:(UITextField *)textField;委託方法。

0

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldShouldReturn :) name:UIKeyboardWillHideNotification object:nil];

這實際上是在路上崩潰。

但是如果調用的自定義方法,如: [[NSNotificationCenter defaultCenter]的addObserver:自選擇器:@selector(myCustomeMethodToResignTextFieldResponder)名稱:UIKeyboardWillHideNotification對象:無];

然後,它會工作得很好.. :-)

0

使用Javascript

我發現iPad的IOS7一個workaroud。我將測試IOS8以確保它可以正常工作。所以基本上我在每個FOCUSOUT事件(對於我所有的文本)都創建了一個監聽器,並且我調用了我的函數。

當您打開鍵盤並關閉「鍵盤」時,它會閃爍。當您選擇另一個文本字段或按鈕時它不會觸發,因爲它的目標是null。如果與keydown結合使用,則只能在釋放鍵盤時才能保存多個值並調用提交函數。

document.addEventListener('focusout', function(e) { 
     if (e.relatedTarget == null){ 
      alert("close keyboard without click on something else"); 
      callYourFunction(); 
      } 
    });