你好,有没有办法检测iPad键盘隐藏按钮?我的意思是当用户按下这个按钮时:
会发生某些事情!
我不确定您想要实现什么,但也许这可以帮助您:使用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.");
}
使用 Javascript
我为 iPad IOS7 找到了一个解决方法。我将在 IOS8 上进行测试以确保它有效。因此,基本上我在每个 FOCUSOUT 事件上创建了一个监听器(适用于我的所有文本),然后调用我的函数。
当你打开键盘并关闭它时,它会触发。当你选择另一个文本字段或按钮时,它不会触发,因为它的目标是 null。如果你与 keydown 结合使用,你可以保存多个值,并仅在释放键盘时调用提交函数。
document.addEventListener('focusout', function(e) {
if (e.relatedTarget == null){
alert("close keyboard without click on something else");
callYourFunction();
}
});
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];
这将使得你的- (BOOL)textFieldShouldReturn:(UITextField *)textField;
代理方法在iPad上按下键盘下方的按钮时被调用。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldShouldReturn:) name:UIKeyboardWillHideNotification object:nil];
这实际上会导致崩溃。
但是如果你调用一个自定义方法,比如: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myCustomeMethodToResignTextFieldResponder) name:UIKeyboardWillHideNotification object:nil];
那么它就可以正常工作了.. :-)