単純な NSTask を制御するためにツールバー ボタンを使用しています。以下のコードは、IBAction が通常のボタンで指定された場合は期待どおりに動作しますが、NSToolbarItem で指定された場合はアーティファクトが生成されます。より正確には、実行ボタンは無効になりません。どんな考えでも大歓迎です。
import Cocoa
class Document: NSDocument {
override var windowNibName: String? {
return "Document"
}
@IBOutlet var runButtonOutlet: NSToolbarItem! // works for NSButton
@IBAction func runButtonAction(sender: AnyObject) {
runTask()
runButtonOutlet.enabled = false
}
@IBAction func quitButtonAction(sender: AnyObject) {
bigTask.terminate()
runButtonOutlet.enabled = true
}
var bigTask = NSTask()
func runTask () {
let task = NSTask()
bigTask = task
task.launchPath = "/usr/bin/say"
task.arguments = ["say something"]
task.terminationHandler = {
task in
self.runButtonOutlet.enabled = true
}
task.launch()
}
}