我该如何以编程方式与“iPad键盘隐藏按钮”进行交互?

8

iPad键盘右下角有一个按钮,可以隐藏键盘。

enter image description here

如何在程序中与它交互?(获取该按钮,然后发送UIControlEventTouchUpInside事件)。

有人知道吗?

[编辑] 在我的情况下,键盘显示在模态视图上。


1
这与向您正在编辑的视图发送-(void)dismissFirstResponder的行为不同吗? - Grady Player
在我的情况下,resignFirstResponder 不起作用,因为我想在模态视图(UIModalPresentationFormSheet)上隐藏 iPad 键盘以显示 UIDatePicker,所以如果可能的话,我想触发该事件来隐藏键盘。 - Son Nguyen
如果你呈现了UIDatePicker并使其成为第一响应者,键盘不应该消失吗?为什么这还不够好? - ipmcc
嗨IPMCC,让我试试,谢谢。 - Son Nguyen
1
我也在寻找同样的东西,这个对我有用:https://dev59.com/iXA75IYBdhLWcg3w899J#6268520 - lockysoft
3个回答

2

通过覆盖 disablesAutomaticKeyboardDismissal 方法并返回 NO,可以使键盘在您调用 resignFirstResponder 时关闭,即使您的 UITextView 在模态视图上。您应该将此代码放置在您启动键盘的视图控制器中:

- (BOOL)disablesAutomaticKeyboardDismissal {
    return NO;
}

Source: https://dev59.com/iXA75IYBdhLWcg3w899J#6268520


欢迎来到Stack Overflow!虽然这理论上可以回答问题,但最好在此处包含答案的关键部分,并提供参考链接。 - jjnguy

1

像这样的吗?我不记得在哪里找到这段代码,但我用它来切换屏幕键盘,因为如果已连接蓝牙键盘,则默认情况下会隐藏它。

- (void) toggleKeyboard(UIKeyboardImpl * keyImpl){

    if (UIKeyboardAutomaticIsOnScreen()) {
        UIKeyboardOrderOutAutomatic();
    } else {
    UIKeyboardOrderInAutomatic();
}

编辑


我找到了这段代码的来源。它可以正常工作,但问题在于你需要导入私有框架GraphicsServices,这很可能会导致你的应用被App Store拒绝。


1
通常情况下,您会向活动输入视图发送{{link1:resignFirstResponder}}消息。

我已经尝试过这个了,但在我的情况下,模态视图上的键盘没有生效。 - Son Nguyen

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