【问题标题】:Where does the setFrameAutosaveName method save the window's position?setFrameAutosaveName 方法在哪里保存窗口的位置?
【发布时间】:2013-11-02 06:32:30
【问题描述】:

我知道 Cocoa 可以使用 setFrameAutosaveName:saveFrameUsingName: 方法将窗口的位置保存在用户默认值中。

但是用户默认值在哪里?

每个应用程序都在固定的地方吗?

【问题讨论】:

    标签: cocoa nsuserdefaults nswindow


    【解决方案1】:

    它存储在您的应用程序用户默认值中。对于每个窗口,它都会创建一个带有固定前缀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 和朋友。
    • 知道了。真的很感激。
    • 请注意,在最近的 OS X 版本中,不应再手动更改 ~/Library/Preferences 中的任何内容,因为系统会保留一个默认的内存数据库。从命令行(终端)访问默认值的唯一安全方法是通过defaults 命令,请参阅man defaults 以获得帮助。
    【解决方案2】:

    对于沙盒应用:

    ~/Library/Containers/my.app.identifier/Data/Library/Preferences/my.app.identifier.plist
    

    对于非沙盒应用:

    ~/Library/Preferences/my.app.identifier.plist
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 2019-07-06
      相关资源
      最近更新 更多