You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OSX 10.13下Bundle用户偏好及NSToolbar配置的存储位置与编辑方法

macOS 中 Bundle 用户偏好的存储位置

macOS 下应用的用户偏好存储位置分两种场景:

  • 非沙盒应用:偏好文件存放在用户目录的 ~/Library/Preferences/ 文件夹下,文件名以应用的 Bundle ID 命名,格式为 <Bundle ID>.plist,比如 com.example.MyApp.plist。
  • 沙盒应用:出于安全隔离,偏好文件会放在容器目录内,路径为 ~/Library/Containers/<Bundle ID>/Data/Library/Preferences/<Bundle ID>.plist。

此外,系统级的全局偏好(极少用到)会存放在 /Library/Preferences/ 下,同样以 Bundle ID 命名。

Xcode 9 开发的 macOS 10.13 应用中 NSToolbar 配置的存储与编辑

当你给 NSToolbar 设置 autosavesConfiguration = true 后,工具栏的自定义配置会自动保存到应用的用户偏好文件中,具体位置和应用是否沙盒化有关:

存储位置

  • 沙盒应用:对应路径为 ~/Library/Containers/<你的应用Bundle ID>/Data/Library/Preferences/<你的应用Bundle ID>.plist
  • 非沙盒应用:对应路径为 ~/Library/Preferences/<你的应用Bundle ID>.plist

在偏好文件中,工具栏配置以 NSToolbar Configuration <Toolbar Identifier> 为键存储(比如你的工具栏 identifier 是 MainToolbar,键名就是 NSToolbar Configuration MainToolbar),值是包含工具栏项顺序、可见状态等信息的字典。

编辑方式

1. 手动编辑偏好文件

  • 首先找到对应的 .plist 文件:
    • 沙盒应用需要先进入 ~/Library/Containers/ 下的对应应用目录
  • 处理二进制 plist:默认 macOS 偏好文件是二进制格式,直接用文本编辑器打开会乱码,可通过终端命令转换为可读的 XML 格式:
    plutil -convert xml1 /path/to/your/app.plist
    
    编辑完成后再转回二进制格式:
    plutil -convert binary1 /path/to/your/app.plist
    
  • 用 Xcode 直接打开 plist 文件更方便,它可以自动识别并展示二进制 plist 的内容,直接修改键值即可。

2. 通过代码重置/修改

如果需要在应用内重置工具栏到默认状态,或者自定义配置,可以操作 NSUserDefaults:

// 移除已保存的工具栏配置,下次启动会加载默认设置
UserDefaults.standard.removeObject(forKey: "NSToolbar Configuration MainToolbar")
UserDefaults.standard.synchronize()

你也可以提前构造符合格式的字典,通过 set(_:forKey:) 方法写入自定义的工具栏配置。

内容的提问来源于stack exchange,提问作者Igor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 03:15:10