退出xcode可可swift应用程序

Lan*_*cky 28 macos cocoa swift

我已经在XCode 6中编写了我的第一个swift OS/X应用程序.除了我无法弄清楚如何退出应用程序之外,一切正常.我有一个退出按钮,ExitNow功能定义如下:

@IBAction func ExitNow(sender: AnyObject) {
    // ???
}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚代码是什么.通过在线搜索,我发现了各种选项,但它们要么在Objective C中,要么过于笼统,无法理解.我会很感激一个与行为相同的例子cmd-Q.

Mik*_*e S 65

您应该能够在全局对象上调用terminateNSApp.

@IBAction func ExitNow(sender: AnyObject) {
    NSApplication.sharedApplication().terminate(self)
}
Run Code Online (Sandbox Code Playgroud)

使用Swift 3 编辑代码现在:

@IBAction func ExitNow(sender: AnyObject) {
    NSApplication.shared().terminate(self)
}
Run Code Online (Sandbox Code Playgroud)

  • 从Swift 4开始,它是`NSApplication.shared.terminate(self)` (6认同)
  • 糟糕,显然你无法使用NSApp,抱歉.我编辑了我的答案,以便它使用`NSApplication.sharedApplication()`代替.我还在一个针对10.10的全新OSX Swift项目中快速测试了它并且它运行良好. (2认同)

oya*_*lhi 13

或者我们可以像这样退出应用程序:

@IBAction func ExitNow(sender: AnyObject) {    
    exit(0)
}
Run Code Online (Sandbox Code Playgroud)

作为旁注,您可以因错误退出:

fatalError("reason for exiting")
Run Code Online (Sandbox Code Playgroud)

无条件地打印消息并停止执行.iOS 8.1及更高版本.