我正在做一个简单的OSX App,以从StatuBar菜单显示/隐藏Finder中的隐藏文件。
这是显示/隐藏文件的IBAction:
@IBAction func menuClicked(sender: NSMenuItem) {
let task = NSTask()
task.currentDirectoryPath = "/var/tmp/"
task.launchPath = "usr/bin/defaults"
if(sender.state == NSOnState){
sender.state = NSOffState
task.arguments = ["write", "com.apple.finder", "AppleShowAllFiles", "NO"]
}else{
sender.state = NSOnState
task.arguments = ["write", "com.apple.finder", "AppleShowAllFiles", "YES"]
}
task.launch()
task.waitUntilExit()
let killTask = NSTask()
killTask.launchPath = "usr/bin/killall"
killTask.arguments = ["Finder"]
killTask.launch()
}
这给了我这个错误:
2015-05-10 23:54:22.237 ShowHideFiles[1234:303] An uncaught exception was raised
2015-05-10 23:54:22.238 ShowHideFiles[1234:303] launch path not accessible
我试图找出原因,但找不到答案。
我也尝试通过禁用一个或另一个来查看两个launchPath中的哪个是错误的,并且它们都给出相同的错误。
有人可以帮我吗?
两者var
并usr
处于同一水平,所以你需要前缀usr
与/
像你这样的var
:
task.currentDirectoryPath = "/var/tmp/"
task.launchPath = "/usr/bin/defaults"
killTask.launchPath = "/usr/bin/killall"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句