连接蓝牙输入设备时如何在iPad上显示软键盘

3

我真的很苦恼,因为我找不到在iPad连接蓝牙输入设备时显示软键盘的方法。我在网上搜索了一下,得到以下结果:

Erica说的诀窍是回答系统:“没有连接硬件键盘”。我试图为UIKeyboardImpl编写一个类别,并覆盖:

- (BOOL)isInHardwareKeyboardMode {
    DEBUG(@"is called");
    return NO;
}   

但是到目前为止我还没有得到任何东西。重写的方法被调用了,但没有软键盘出现。 Erica也说应用程序是通过动态链接工作的,但我不知道如何完成它。我不需要在AppStore中,因为这是一个私人应用程序,所以我不担心被拒绝。 提前致谢。
2个回答

7

好的,终于搞定了。非常感谢David、Matthias和Enrico。以下是步骤:

  • import the private framework GraphicsServices
  • call GSEventSetHardwareKeyboardAttached(NO) inside the viewDidLoad
  • add a button that toggles the keyboard by calling

    static void toggleKeyboard(UIKeyboardImpl * keyImpl){
    if (UIKeyboardAutomaticIsOnScreen()) {
        UIKeyboardOrderOutAutomatic();
    } else {
        UIKeyboardOrderInAutomatic();
    }
    

我在http://code.google.com/p/btstack/wiki/iPhoneKeyboardHiding上找到了这个函数。 现在我可以同时从软键盘和蓝牙设备中接收输入。


使用私有框架是否意味着您将被iTunes Store拒绝? - Slee
他说这是一个私人使用的应用程序,所以他不在意。 - lensovet
从未在私有API上看到拒绝。 - Dmitry
iOS 10怎么办?需要帮忙吗? - Maulik

0

使用苹果键盘可以绕过此问题,只需按下弹出键即可。也许您可以实现一个动作来发送弹出键码?我认为iSSH有一个功能,即使连接了蓝牙键盘,您也可以点击屏幕键盘图标将其显示出来。


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