嗨有没有办法检测iPad键盘隐藏按钮?我的意思是当用户按下此按钮时:
事情将会发生!
答案 0 :(得分: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.");
}
答案 1 :(得分: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;
委托方法。
答案 2 :(得分:0)
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldShouldReturn :) name:UIKeyboardWillHideNotification object:nil];
这实际上在旅途中崩溃了。
但是如果你调用自定义方法,例如: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myCustomeMethodToResignTextFieldResponder)name:UIKeyboardWillHideNotification object:nil];
然后它会正常工作..: - )
答案 3 :(得分: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();
}
});