【问题标题】:How to detect the Smart/external Keyboard on iPad?如何检测 iPad 上的智能/外接键盘?
【发布时间】:2019-07-08 21:05:29
【问题描述】:

如何在连接(智能)键盘时收到通知?

一些背景: 我正在开发一项功能,该功能会根据是否连接了 iPad Pro 智能键盘或其他外部键盘(如 Pages)来自动显示和隐藏我的软件键盘。我已经看到this 的答案,但这仅适用于选择文本字段时。经过大量的谷歌搜索,我偶然发现了 Apple 的 ExternalAccessory 类,您可以要求连接设备,然后检查这些设备是什么。

我已经尝试了这个的基本实现,但我无法让它在我的 iPad Pro 上使用连接的智能键盘(是的,我确定它已经连接,因为我可以看到我输入的字母出现在我的屏幕上 ?? ??)。

首先,文档说您可以检测到通过蓝牙和闪电连接的设备,我只能希望这也包括智能键盘连接器。我已启用项目的无线附件配置功能。

其次,需要将UISupportedExternalAccessoryProtocols 键添加到他们的info.plist 中,然后需要指定连接哪些协议。似乎没有记录哪些协议,也没有针对 Apple 自己的设备。我遇到了一个提到iAP2蓝牙协议的教程,所以我添加了这个,然后希望最好。

我的代码

由于我还没有正确设置我的项目配置,所以我也没有添加很多代码。我试过了:

func printAllAccessories() {
    for device in EAAccessoryManager.shared().connectedAccessories {
        print("connected device with name: ", device.name)
    }
}

但注意似乎是相关的。

底线

在 iOS 应用中获取外部键盘通知的流程(包括项目配置)是怎样的?

似乎没有任何全面的在线文档,所以在这里获得它可能会很好。任何帮助将不胜感激!

【问题讨论】:

    标签: ios ipad keyboard external-accessory


    【解决方案1】:

    首先这不起作用,因为智能连接器没有使用蓝牙连接到设备。您可以在此页面上阅读更多相关信息Use your Smart Keyboard Folio or Smart Keyboard with iPad Pro

    第二件事是苹果智能键盘和外接键盘是完全不同的东西。 Apple Smart Keyboard 可用作 iPad 外壳和 iPad 键盘。外部键盘用作键盘,没有其他用途。

    因此,我们可以得出结论,当您使用 Smart Connector 将 Smart Keyboard 连接到 iPad 时,iPad 会将其视为 iPad 保护套,从而为您的 iPad 提供保护,并且不会影响您的软件的其他功能(尝试键入在它上面或使用任何快捷方式,什么都行不通)。只有在折叠到打字位置时,iPad 才会将 Smart Keyboard 识别为 keyboard。这是与外接键盘的主要区别。外接键盘一经蓝牙连接即可识别。

    仅当外部键盘通过蓝牙连接或您的智能键盘处于输入位置时,Pages 应用程序才会隐藏键盘。如果智能键盘连接到智能连接器并且不在输入位置,则在您将其折叠到输入位置之前,仍然会有软件键盘。这意味着 iOS 将处理隐藏和显示键盘。

    有关处理在硬件键盘上执行的按键操作,您可以参考此类UIKeyCommand

    【讨论】:

      猜你喜欢
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 2015-07-25
      相关资源
      最近更新 更多