ウィンドウの赤いボタンでアプリを終了させる方法

Macアプリは赤いボタンを押しても隠れるだけでアプリが実際には終了していないことがほとんどです。 プログラム的に赤いボタンを押してアプリを終了させるコードが意外にも簡単な方法で実現できます。

AppDelegateに以下のようなメソッドを記述してみましょう。

import Cocoa

@main
class AppDelegate: NSObject, NSApplicationDelegate {
  
	  // 中略

    // ウィンドウを閉じたらアプリを終了させる(true)
    func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
          return true
    }
		
}
MacOS $ sw_vers;xcodebuild -version;swift --version

ProductName:	macOS
ProductVersion:	11.4
BuildVersion:	20F71
Xcode 12.5.1
Build version 12E507
Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)
Target: x86_64-apple-darwin20.5.0

Category