关闭最后一个窗口时关闭SwiftUI应用程序

是否可以在用户关闭最后一个窗口时关闭 macOS SwiftUI 应用程序,类似于applicationShouldTerminateAfterLastWindowClosedAppDelegate 函数。

func applicationShouldTerminateAfterLastWindowClosed(NSApplication) -> Bool

回答

我在这里找到了答案 https://www.hackingwithswift.com/quick-start/swiftui/how-to-add-an-appdelegate-to-a-swiftui-app

为 AppDelegate 创建一个类

import Foundation
import AppKit

class AppDelegate: NSObject, NSApplicationDelegate {
    func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
        return true
    }
}

向 SwiftUI App 类添加属性包装器

import SwiftUI

@main
struct SwiftUIApp: App {
    @NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    
    var body: some Scene {
        WindowGroup {
            ContentView()
                .frame(minWidth: 300, idealWidth: 300, maxWidth: .infinity, minHeight: 300, idealHeight: 300, maxHeight: .infinity)
    
        }
    }
}


以上是关闭最后一个窗口时关闭SwiftUI应用程序的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>