iOS8 自定义键盘在不请求开放访问的情况下访问用户默认值

Posted

技术标签:

【中文标题】iOS8 自定义键盘在不请求开放访问的情况下访问用户默认值【英文标题】:iOS8 custom keyboard accessing user defaults without requesting open access 【发布时间】:2014-09-29 07:47:18 【问题描述】:

我正在为 ios8 实现一个自定义键盘。我有一个包含应用程序,它将一些特定于键盘的值设置为NSUserDefaults,以便键盘可以读取它们。

这很好用,但是我必须requestsOpenAccess 设置为 yes 才能让它在设备上运行。

这对我来说似乎有点过头了,我只想从包含的应用程序中读取一些值。我不想要网络键盘的任何其他功能。

有谁知道是否有一种方法可以在不请求开放访问的情况下读取包含应用程序中设置的值?

【问题讨论】:

尝试写入自定义plist 文件。 键盘和包含应用程序之间的文件共享不是也需要开放访问吗? 不确定,但值得一试。 【参考方案1】:

如果没有requestOpenAccess,就无法在主机应用程序和键盘扩展程序之间共享内容。

您必须为主机应用程序和键盘扩展启用共享容器,并使用

[[NSUserDefaults alloc] initWithSuiteName:];

访问共享的 NSUserDefaults。

是的,这太过分了,但这是唯一的方法。

【讨论】:

以上是关于iOS8 自定义键盘在不请求开放访问的情况下访问用户默认值的主要内容,如果未能解决你的问题,请参考以下文章

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

iOS 8 键盘读/写设置,无需请求开放访问

自定义 iOS 键盘在没有完全访问权限的情况下访问容器

在不创建新类的情况下访问自定义 UITableViewCell 中的 UITextField?

如何在iOS8自定义键盘中使用自动更正和快捷列表?

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