Đóng ứng dụng SwiftUI khi cửa sổ cuối cùng được đóng [trùng lặp]
Có thể đóng ứng dụng macOS SwiftUI khi người dùng đóng cửa sổ cuối cùng, tương tự như applicationShouldTerminateAfterLastWindowClosed
chức năng AppDelegate.
func applicationShouldTerminateAfterLastWindowClosed(NSApplication) -> Bool
Trả lời
2 DuncanGroenewald
Tôi đã tìm thấy câu trả lời ở đây https://www.hackingwithswift.com/quick-start/swiftui/how-to-add-an-appdelegate-to-a-swiftui-app
Tạo một lớp cho AppDelegate
import Foundation
import AppKit
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
return true
}
}
Thêm trình bao bọc thuộc tính vào lớp Ứng dụng SwiftUI của bạn
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)
}
}
}