отказаться от приложения xcode для быстрого конвертирования cocoa

Я написал свое первое быстрое приложение OS/X в XCode 6. Все работает, но я не могу понять, как выйти из приложения. У меня есть кнопка для выхода, а функция ExitNow определена следующим образом:

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

Я не могу понять, какой будет код. При поиске в Интернете я нашел различные варианты, но они были либо в Objective C, либо слишком общие для меня, чтобы понять. Я был бы признателен за пример, который будет вести себя так же, как cmd-Q.

Ответы

Ответ 1

Вы должны иметь возможность просто вызывать терминатор для глобального объекта NSApp.

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

Редактировать с помощью Swift 3 код теперь:

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

Редактировать 2 С Swift 4 и 5 код теперь:

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

Ответ 2

Или мы могли бы просто выйти из приложения следующим образом:

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

В качестве побочной заметки вы можете выйти из-за ошибки:

fatalError("reason for exiting")

Безусловно печатает сообщение и прекращает выполнение. iOS 8.1 и более поздних версий.

Ответ 3

В Xcode 9.0 вы можете использовать NSApp.terminate(nil).