连接(智能)键盘后如何获得通知?
某些情况: 我正在使用一项功能,该功能根据是否连接了iPad Pro智能键盘或其他外接键盘(例如Pages)自动显示和隐藏我的软件键盘。我已经看到this的答案,但这仅在选择了文本字段时适用。经过大量的搜寻之后,我偶然发现了Apple的ExternalAccessory类,您可以询问连接的设备,然后检查这些设备是什么。
我尝试了此操作的基本实现,但无法在连接了智能键盘的iPad Pro上使用它(是的,我确定它已连接,因为我可以看到键入的字母出现在屏幕上)。
首先,文档说您可以通过蓝牙和闪电检测到设备,我只希望它也包括智能键盘连接器。我已经启用了项目的无线附件配置功能。</ p>
第二,需要将UISupportedExternalAccessoryProtocols
键添加到其info.plist中,然后需要指定连接了哪些协议。似乎没有记录哪些协议,也不是针对苹果自己的设备。我碰到了一个提到iAP2
蓝牙协议的教程,所以我添加了这个协议,然后希望能做到最好。
我的代码
由于我还没有正确设置项目配置,因此我也没有添加太多代码。我尝试过:
func printAllAccessories() {
for device in EAAccessoryManager.shared().connectedAccessories {
print("connected device with name: ", device.name)
}
}
但是注意到似乎有联系。
底线
在iOS应用中获取外部键盘通知的过程(包括项目配置)如何?
似乎没有关于此在线内容的任何详尽文档,因此在这里获得它可能很好。任何帮助将不胜感激!
答案 0 :(得分: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仅在将其折叠在打字位置时才会将智能键盘识别为键盘。这是与外接键盘的主要区别。通过蓝牙连接后,外部键盘将立即被识别。
仅当外部键盘通过蓝牙连接或您的智能键盘处于键入位置时,Pages应用才会隐藏键盘。如果智能键盘已连接到智能连接器,并且未处于键入位置,则在将其折叠到键入位置之前,仍然会有软件键盘。这意味着iOS将处理隐藏和显示键盘。
要处理在硬件键盘上执行的按键操作,可以参考此类UIKeyCommand。