iOS 8 键盘读/写设置,无需请求开放访问
Posted
技术标签:
【中文标题】iOS 8 键盘读/写设置,无需请求开放访问【英文标题】:iOS 8 Keyboard read/write setting without requesting open access 【发布时间】:2014-10-13 07:25:50 【问题描述】:我正在编写 ios 8 键盘应用程序。这将是简单的英文键盘应用程序。我希望用户能够在键盘内设置键盘高度。但是,我不想将用户设置与包含的应用程序连接起来。因为我绝对希望用户确保其安全,所以我不打算要求开放访问。
我读过https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1 看到了
这个图像看起来如果扩展不需要与容器应用程序通信,看起来你可以保存和读取设置。
[[NSUserDefaults standardUserDefaults] setFloat:200 forKey:@"portraitHeight"];
[[NSUserDefaults standardUserDefaults] synchronize];
这在容器应用程序的执行中有效,但如果我从跳板搜索加载键盘,它会崩溃并且不显示键盘。
This ask about read data from containing app但我的问题是我是否只能在扩展中保存/读取。
【问题讨论】:
【参考方案1】:哦,等等,我可能会找到答案。 我可以在键盘中读/写标准默认值,而不是容器应用程序。 我只需要从 Xcode 停止应用程序执行并退出,然后从其他应用程序开始使用键盘。 所以当调试过程附加时,你不能从跳板或我猜的其他应用程序打开。
我不确定这是否与此有关,但有时,从跳板搜索中,键盘不会出现并显示以下错误
OS_xpc_dictionary 无法获取插件 XXXXXXX(键盘名称)的可执行路径
这可能与 [NSUserDefaults standardDefaults] 读/写问题没有直接关系。
【讨论】:
@Tomoshisa_Takaoka - 您在关于跳板搜索的研究中发现了什么? 我发现无论我是否使用 NSUserDefault,它都会崩溃。我的键盘需要一些内存,因此可能是由于内存压力而发生的。键盘扩展似乎受到内存有限的限制。以上是关于iOS 8 键盘读/写设置,无需请求开放访问的主要内容,如果未能解决你的问题,请参考以下文章
如何检查我的 ios8 自定义键盘扩展是不是具有开放访问权限?