いつも忘れてしまっていて、都度、ググる羽目になるので、備忘録としてまとめておきます。
SampleApp.swift
import SwiftUI
class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate {
func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
return true //⭐️ true: 最後のウインドウを閉じたら終了する
}
}
@main
struct SampleApp: App {
@NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate //⭐️
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
普通にアプリを作ると、ウインドウを閉じてもアプリは終了しません。
マルチウインドウ ならそれでもよいですが、シングルウインドウ アプリの場合は、アプリを終了してほしい場合があります。
その場合は、AppDelegate に applicationShouldTerminateAfterLastWindowClosed(_:)を実装することで実現できます。
以上