ios - 键盘扩展 : Is it possible to inherit features and UI from the stock iOS keyboard?

标签 ios objective-c keyboard ios8 ios-app-extension

Custom Keyboard Extensions是 iOS 8 中一个强大的新工具,它允许您实现 iOS 8 键盘永远不会具备的键盘功能。

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

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

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

Keymoji screenshot

Keymoji已经创建了这个键盘,但似乎是手动复制了 iOS 键盘的外观而不是继承它。在他们的键盘上打字时有许多细微的差别。这创造了一种类似恐怖谷的体验,在与普通 iOS 键盘非常相似但又不完全相同的键盘上打字。

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

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

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

最佳答案

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

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

确保open a bug report与 Apple 合作,让他们知道他们解决方案的当前缺点,以及您认为对开发人员有利的方面。在此处发布错误报告编号(雷达),以便其他开发人员可以复制错误报告,并让 Apple 相应地确定优先级。

关于ios - 键盘扩展 : Is it possible to inherit features and UI from the stock iOS keyboard?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26004198/

相关文章:

ios - 如何在 Iphone Phonegap 中播放内联视频

ios - UICollectionView 在禁用 allowsMultipleSelection 时启用取消选择单元格

iphone - iPhone Web 服务有理想的传输格式吗?

c# - 在另一个应用程序中模拟按键和按键释放?

ios - 如何以编程方式更改 iOS 中的键盘?

javascript - 从移动网站链接到亚马逊应用程序中的特定产品

iphone - 我可以查明应用权限何时更改吗?

安卓软键盘不会消失

javascript - Qualtrics Javascript 在移动设备上运行不一致

ios - 使用来自 NSArray 的 UIButtons 自动填充 ScrollView