键盘扩展:是不是可以从股票 iOS 键盘继承功能和 UI?

Posted

技术标签:

【中文标题】键盘扩展:是不是可以从股票 iOS 键盘继承功能和 UI?【英文标题】:Keyboard Extension: Is it possible to inherit features and UI from the stock iOS keyboard?键盘扩展:是否可以从股票 iOS 键盘继承功能和 UI? 【发布时间】:2014-09-23 20:29:14 【问题描述】:

Custom Keyboard Extensions 是 ios 8 中一个强大的新工具,可让您实现普通的 iOS 8 键盘永远不会具备的键盘功能。

不过,现有的 iOS 键盘已经很不错了。作为唯一的 iOS 键盘,它已经开发了多年,因此具有人们期望从键盘获得的许多(实施成本高昂)功能。

我有兴趣实现几个小键盘功能,但也希望保留普通 iOS 8 键盘的主 UI 和功能。

例如,键盘扩展可以建议表情符号列表,而不是在新的自动完成区域中建议单词列表。

Keymoji 已经创建了这个键盘,但似乎是手动复制了 iOS 键盘的外观而不是继承自它。在他们的键盘上打字时有许多小的差异。这创造了一种神秘的山谷般的体验,在与普通 iOS 键盘非常相似但又不完全一样的键盘上打字。

理想的做法是实现键盘监听器、表情符号查找和仅限于自动完成区域的自定义 UI。其他功能和 UI 将由普通键盘处理。

或者,您是否也在(重新)实现自动完成、大写、调整点击目标的大小、单个按键的 UI 以及人们期望从键盘获得的许多其他功能?

自定义键盘扩展是否“免费”获得这些功能?

【问题讨论】:

【参考方案1】:

系统键盘的整个内部实现目前是私有 API,开发人员无法使用。某些功能无法完全复制,因为系统键盘托管在用户应用程序进程中,而键盘扩展则在辅助进程中启动。键盘扩展的视图层次结构在进程外渲染,并使用 XPC 在用户应用程序上绘制。

尽管对键盘扩展有任何限制,但仍可以向用户提供许多默认功能,例如视图、预测输入 API 等。例如,这将有助于实现切换键盘之间的一致性。

请务必与 Apple 联系open a bug report,让他们知道他们的解决方案当前存在的缺陷,以及您认为哪些内容可以使开发人员受益。在此处发布错误报告编号(雷达),以便其他开发人员可以复制错误报告,并让 Apple 相应地优先处理。

【讨论】:

以上是关于键盘扩展:是不是可以从股票 iOS 键盘继承功能和 UI?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查我的 ios8 自定义键盘扩展是不是具有开放访问权限?

自定义键盘应用程序扩展 iOS 8 上的 Siri

自定义键盘扩展 iOS Swift 中的自动发送功能

iOS 键盘扩展:像粘贴一样的拟我表情

如何从 iOS 键盘扩展中检测到通过在 iMessage 中点击“发送”等操作清除了文本字段?

在自定义键盘扩展中播放标准 iOS 键盘点击声音