2010-08-20 190 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(); 
      } 
    });