前言
大多是mac app都有设置功能,一般都是给本app设置一些选项,如果想给其他app设置一些首选项应该怎么办呢?那就使用: CFPreferencesSetValue 和 CFPreferencesCopyAppValue
示例
设置
var key : CFString = "key" as! CFString
var value: CFString = "world!" as! CFString
var applicationID : CFString = "com.example3" as! CFString
// 为applicationID这个应用设置,读取时要填写正确
CFPreferencesSetValue(key, value, applicationID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost)
// 需要手动调用才可以持久化到磁盘
var rst = CFPreferencesSynchronize(applicationID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost)
print("插入结果:\(rst)")
读取
var key : CFString = "key" as! CFString
var applicationID : CFString = "com.example3" as! CFString
var value = CFPreferencesCopyAppValue(key, applicationID)
CFShow(value)
print("====>value:\(value)")
注意!!!
一定要关闭App Sandbox 沙箱环境!否则无法实现为其他app设置首选项! (被卡了两天多才发现这个问题)
参考资料
developer.apple.com/library/arc…
developer.apple.com/library/arc…