首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS检测键盘布局(例如QWERTY、AZERTY)

iOS检测键盘布局(例如QWERTY、AZERTY)
EN

Stack Overflow用户
提问于 2020-04-16 11:53:54
回答 3查看 1.4K关注 0票数 5

我正在一个iOS应用程序中构建一个自定义建议/自动更正功能。它必须检测意外相邻的按键,并将其与已知的单词列表进行比较,以建议用户想要键入的单词。

例如,如果自定义单词列表包含catdogmonkey和用户类型cst,则应用程序可以确定最有可能的单词是cat (因为sa键相邻)。

这将在标准的QWERTY键盘上工作,但是如果用户使用AZERTY键盘会发生什么呢?

为了使自动更正/建议可靠地工作,应用程序必须能够检测到正在使用的键盘布局。

在iOS中,可以从UITextInputMode对象中获取UITextField。该对象具有primaryLanguage (string)属性,它将显示区域设置(例如,en-GB),但该属性包含的粒度不足以区分English (Australia) QWERTYEnglish (Australia) AZERTY。在这两种情况下,primaryLanguage都是en-AU

能否检测到iOS中的键盘布局?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-23 17:23:39

我一直未能找到解决这个问题的办法。也许这是值得与苹果员工讨论的TSI罚单。

我知道这不是一个令人满意的答案,但我仍想在此向未来的读者分享我的想法:

  1. UITextInputMode的私有APItextField.textInputMode?.value(forKey: "identifierWithLayouts") 这将返回一个类似de_DE@sw=QWERTZ-German;hw=Automatic的字符串,您可以从中推断键盘布局。
  2. UserDefaults UserDefaults.standard.object(forKey: "AppleKeyboards") 这将返回用户安装的所有键盘的列表。在大多数情况下,这只会是一种语言(除了表情键盘)。例如: Optional(<__NSCFArray 0x600003b8e6c0>(en_US@sw=QWERTY;hw=Automatic,emoji@sw=Emoji)) 您还可以在UserDefaults.standard.dictionaryRepresentation()上迭代并在值中搜索QWERTZ/QWERTY/AZERTY。
  3. 通过大量的手工操作,您可以在所有不明确的情况下(如UITextInputModes )将en_AU编码为二进制数据。然后,可以使用类似于NSKeyedArchiver.archivedData(withRootObject:textField.textInputMode, requiringSecureCoding: false)的内容来比较用户textInputMode在运行时的二进制编码。
票数 1
EN

Stack Overflow用户

发布于 2020-04-24 00:32:56

我已经找到了这个老问题,它可能会给你一个解决方案。不确定它是否仍然有效,但它在问题中显示了如何获得当前安装的键盘,有人提供了“灰色地带”解决方案,因为似乎没有直接的方法来实现您想要做的事情。希望能帮上忙。

票数 0
EN

Stack Overflow用户

发布于 2020-04-28 07:55:09

索引0处的AppleLanguages对象是获取输入语言的常用方法。在使用自定义键盘扩展时,我没有试图确定用户使用的是哪种语言和默认布局,而是使用了Apple推荐的一种方法:为每种语言使用单独的键盘布局。在其他方面,我不认为你会有一个稳定和富有成效的预测,自动纠正,顺便说一下。至于自动更正,我使用SymSpell (https://github.com/AmitBhavsarIphone/SymSpell)和与https://github.com/wolfgarbe/SymSpell/tree/master/SymSpell.FrequencyDictionary不同的字典为每种语言创建自己的RealmDb。到目前为止,这还需要做一些工作,但最终我的键盘扩展在App上发布了。注意:我与SynSpell所有者或编码者无关--见图

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61249593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档