web-dev-qa-db-ja.com

xcode cocoaの終了Swift app

XCode 6で最初のSwift OS/Xアプリケーションを作成しました。アプリを終了する方法がわからない場合を除き、すべて動作します。終了ボタンとExitNow関数は次のように定義されています。

@IBAction func ExitNow(sender: AnyObject) {
    // ???
}

コードがどうなるかわかりません。オンラインで検索すると、さまざまなオプションが見つかりましたが、それらはObjective Cに含まれているか、または一般的すぎて理解できませんでした。 cmd-Qと同じように動作する例に感謝します。

28
Lanny Rosicky

グローバルNSAppオブジェクトで terminate を呼び出すことができるはずです。

@IBAction func ExitNow(sender: AnyObject) {
    NSApplication.sharedApplication().terminate(self)
}

EditSwift 3を使用すると、コードは次のようになります。

@IBAction func ExitNow(sender: AnyObject) {
    NSApplication.shared().terminate(self)
}

Edit 2Swift 4&5でコードは次のようになります:

@IBAction func ExitNow(sender: AnyObject) {
    NSApplication.shared.terminate(self)
}
65
Mike S

または、次のようにアプリを終了することもできます。

@IBAction func ExitNow(sender: AnyObject) {    
    exit(0)
}

補足として、エラーのために終了することができます:

fatalError("reason for exiting")

無条件にメッセージを出力し、実行を停止します。 iOS 8.1以降。

13
oyalhi

Xcode 9.0では、NSApp.terminate(nil)を使用できます。

2
Peter Ahlberg