代码之家  ›  专栏  ›  技术社区  ›  Monobono

为OSX中的多个用户安装的系统首选项窗格中的UserDefaults

  •  1
  • Monobono  · 技术社区  · 15 年前

    我有一个后台应用程序,通过系统首选项中的首选项窗格进行控制。为了在pref窗格和应用程序之间进行通信,我使用分布式通知。用户默认值通过共享 [NSUserDefaults addSuiteNamed:]

    当用户在系统首选项窗格的提示下安装“适用于所有用户”的pref窗格时,就会出现问题。在这种情况下,pref被写入 ~/Library/Preferences/ ,与“仅限此用户”安装时相同。(我认为这是正确的行为。) 但是,当prefpane读取默认键时,prefpane似乎正在查看 /Library/Preferences/

    总而言之:

    • prefs窗格安装在:~/Library/PreferencePanes中/
      • 默认写入:~/Library/Preferences/
      • 默认读取自:~/Library/Preferences/
    • 首选项窗格安装在:/Library/PreferencePanes中/
      • 默认写入:~/Library/Preferences/
      • 默认读取自:/Library/首选项/

    谁能解释一下哪里出了问题?

    给我一个爸

    1 回复  |  直到 15 年前
        1
  •  3
  •   Peter Hosey    15 年前

    你的设计基本上和咆哮一样。我们使用CFPreferences来读取和写入用户的首选项。看见 GrowlPreferencesController the macros in GrowlDefinesInternal.h . 分布式通知提示后台应用程序和prefpane重新读取首选项。