【发布时间】:2013-11-02 06:32:30
【问题描述】:
我知道 Cocoa 可以使用 setFrameAutosaveName: 或 saveFrameUsingName: 方法将窗口的位置保存在用户默认值中。
但是用户默认值在哪里?
每个应用程序都在固定的地方吗?
【问题讨论】:
标签: cocoa nsuserdefaults nswindow
我知道 Cocoa 可以使用 setFrameAutosaveName: 或 saveFrameUsingName: 方法将窗口的位置保存在用户默认值中。
但是用户默认值在哪里?
每个应用程序都在固定的地方吗?
【问题讨论】:
标签: cocoa nsuserdefaults nswindow
它存储在您的应用程序用户默认值中。对于每个窗口,它都会创建一个带有固定前缀NSWindow Frame 的默认值,并附加您窗口的自动保存名称。示例:
defaults read my.app.identifier
...
"NSWindow Frame MyWindowAutoSaveName" = "386 174 1811 1080 0 0 2560 1418 ";
...
【讨论】:
~/Library/Preferences/my.app.identifier.plist 中,其中~ 是您的主目录,my.app.identifier 是应用程序的标识符,例如com.apple.Mail。当然,您应该很少直接访问该文件。从命令行使用 defaults 命令,在 Cocoa 应用程序中你会使用 NSUserDefaults 和朋友。
~/Library/Preferences 中的任何内容,因为系统会保留一个默认的内存数据库。从命令行(终端)访问默认值的唯一安全方法是通过defaults 命令,请参阅man defaults 以获得帮助。
对于沙盒应用:
~/Library/Containers/my.app.identifier/Data/Library/Preferences/my.app.identifier.plist
对于非沙盒应用:
~/Library/Preferences/my.app.identifier.plist
【讨论】: