【问题标题】:UIInputViewController - Disable Keys Based on User Input in Container AppUIInputViewController - 根据容器应用程序中的用户输入禁用键
【发布时间】:2015-05-02 05:41:59
【问题描述】:

所以,假设我有一个容器应用程序和该应用程序的扩展以用于自定义键盘。假设自定义键盘默认有 5 个键。这些键是什么无关紧要。

现在,我希望用户能够禁用容器应用程序中的 5 个键中的任何一个。如果在容器应用中禁用,按键应显示为红色并在键盘中禁用。

我的问题是:如何将容器应用程序中的用户首选项/序列化数据加载到 UIInputViewController 中?

如果有人可以帮助完成实现这一目标的必要步骤,或提供教程链接(我似乎找不到),将不胜感激。

【问题讨论】:

  • 我必须进行测试,但我找到了这个答案:stackoverflow.com/a/26050187/1152868 认为我可以将我的序列化数据存储到这个共享组目录中,并且可以从键盘访问。没有先测试,我假设它是这样工作的。确认后会回复。

标签: ios swift uiinputviewcontroller


【解决方案1】:

所以我终于想通了。 以下是基本步骤。

1) 创建一个共享组。此链接提供有关如何执行此操作的分步说明:https://stackoverflow.com/a/29051138/1152868。我最初已经实现了这些步骤,但我仍然无法从扩展访问共享目录(在https://stackoverflow.com/a/26050187/1152868 中概述)。事实证明,您必须将权利文件添加到容器应用程序和扩展目标。这对我来说是个大问题。

2) 一旦您确认跨容器应用程序和扩展程序的开放访问,您就可以在它们之间共享数据。我参考了这个教程分享:http://www.atomicbird.com/blog/sharing-with-app-extensions。您有两个选择:使用共享文件目录或使用共享 NSUserDefaults 域。在我的应用程序中,我使用 NSCoding 保存和加载数据。但是,我在解压扩展中的数据时遇到了问题,所以我决定改为保存到 NSUserDefaults(我在扩展中需要的数据可以格式化为一个简单的字典,所以很容易)。

使用共享组和 NSUserDefaults,我现在能够将数据从容器应用程序保存并加载到扩展程序!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    相关资源
    最近更新 更多