我有一个仅限后台的应用程序,它通过系统首选项中的首选项窗格进行控制。要在pref窗格和app之间进行通信,我使用分布式通知。用户默认值通过[NSUserDefaults addSuiteNamed:]
共享。这一切都很顺利。
当系统首选项窗格提示时,用户为“所有用户”安装pref窗格时会出现此问题。在这种情况下,prefs将写入~/Library/Preferences/
,与“仅为此用户”安装时相同。 (我认为这是正确的行为。)
但是,当prefpane读取默认密钥时,prefpane似乎在查看/Library/Preferences/
,而不是在用户的主目录中。
总结一下:
有没有人可以解决出错的地方?
谢谢, Kolja
答案 0 :(得分:3)
您的设计与Growl基本相同。我们使用CFPreferences来读取和写入用户的首选项。请参阅GrowlPreferencesController和the macros in GrowlDefinesInternal.h。分发通知会提示后台应用程序和prefpane重新读取首选项。
(尽管不要把它当作我们这样做,但是在Core Foundation中使用NSNumber,NSDictionary等也没关系,而且阅读起来要容易得多。)