检测iPad键盘隐藏按钮

7

你好,有没有办法检测iPad键盘隐藏按钮?我的意思是当用户按下这个按钮时:

alt text

会发生某些事情!

4个回答

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.");
}

非常感谢,它很好地工作了,但是我使用的是will show而不是UIKeyboardWillHideNotification... 对我来说非常好。 - Mc.Lover

0

使用 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();
           }
    });

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

这将使得你的- (BOOL)textFieldShouldReturn:(UITextField *)textField;代理方法在iPad上按下键盘下方的按钮时被调用。


0

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

这实际上会导致崩溃。

但是如果你调用一个自定义方法,比如: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myCustomeMethodToResignTextFieldResponder) name:UIKeyboardWillHideNotification object:nil];

那么它就可以正常工作了.. :-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接