具有多个 plist 的 InAppSettingsKit

InAppSettingsKit with multiple plists

我正在为 iOS 寻找一个非常高级的设置框架。

首先,我想对某些设置使用自定义编辑器(用户可以 select 颜色)。 如果我没看错的话,这在 IASK 中是可行的。

我还没有找到第二个问题的答案。

我们的应用相当广泛,有 3 或 4 个不同的 "areas",我们希望在 "area" 的基础上进行设置。 这在标准设置下绝对不可能,但在 IASK 下可以吗?

这可能是通过不同的 plist 或同一 plist 中的不同子窗格,但随后需要能够从给定的子窗格启动编辑器。

非常感谢您的回答。

自定义编辑器绝对可以使用 IASKCustomViewSpecifier(参见自述文件)。

关于区域,我不确定是否 1) 这些区域在结构上相同并且您只想单独存储用户设置,或者 2) 它们是否完全不同。

  1. 如果您的区域具有相同的设置集,而您只是想 单独存储它们,您可以使用单独的子类 IASKAbstractSettingsStore。如果您想将所有设置存储在 NSUserDefaults 你可以继承 IASKSettingsStoreUserDefaults 反而。

    在实现中你可以使用不同的 NSUserDefaults 实例(而不是 standardUserDefaults)。然后你的子类 只需要覆盖 -init 并存储一个不同的 NSUserDefaults defaults 属性.

    中的实例

    或者,您可以为设置键使用前缀。为了这 你必须覆盖所有 setter 和 getter 才能插入你的 前缀.

  2. 如果您只对单独的设置屏幕感兴趣 不同的设置,你可以实例化一个 IASKAppSettingsViewController 每个区域的实例并设置 file 属性 到每个区域的设置 plist 的名称。这 相同的机制在内部用于子窗格,因此您也可以 为每个区域添加一个带有 PSChildPaneSpecifier 的父页面。这个 甚至可以使用系统设置。