pup*_*eno 8 macos cocoa objective-c screensaver swift
我们编写了一个应用程序Screensaver Ninja,它通过将屏幕保护程序复制到〜/ Library/Screen Savers来为用户安装屏幕保护程序.这在我的机器和其他开发人员的机器上运行良好,但在我有的测试机器中,文件在那里,如果我让屏幕保护程序激活,它会选择它,但它不会出现在列表中:

这是我们用来安装它的代码:
func install() {
var err: NSError?
fileManager.copyItemAtURL(saverPackageUrl!, toURL: screensaversUrl!.URLByAppendingPathComponent("Ninja.saver"), error: &err)
if err != nil {
NSLog("Error installing Screensaver Ninja: \(err)")
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我们选择它作为默认值的方式:
func setAsDefault() {
var mutable: NSMutableDictionary
if let moduleDict = CFPreferencesCopyAppValue("moduleDict", "com.apple.screensaver") as? NSDictionary {
mutable = moduleDict.mutableCopy() as NSMutableDictionary
} else {
mutable = NSMutableDictionary()
}
mutable.removeObjectForKey("displayName")
mutable["moduleName"] = "Ninja"
mutable["path"] = saverPath
mutable["type"] = 0
CFPreferencesSetValue("moduleDict", mutable as CFPropertyList, "com.apple.screensaver", kCFPreferencesCurrentUser, kCFPreferencesCurrentHost)
CFPreferencesAppSynchronize("com.apple.screensaver")
}
Run Code Online (Sandbox Code Playgroud)
这是它在运行该代码后在我自己的机器中看起来的样子(我的预期):

任何想法为什么它不适用于原始的mac?
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |