目标:
- 我有一个使用Window场景的SwiftUI应用程序
- 当用户关闭红色窗口时,我想调用
f1()
我的尝试:
onDisappear
在用户关闭macOS应用程序窗口时似乎不会被调用
问题:
- 在macOS(SwiftUI)中,如何检测用户关闭窗口?
- 我是否遗漏了什么?
代码
应用程序
@main
struct DemoApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
Window("test", id: "test") {
Color.red
.onDisappear {
print("onDisappear")
f1()
}
}
}
func f1() {
print("f1 called")
}
}
内容视图
struct ContentView: View {
@Environment(\.openWindow) private var openWindow
var body: some View {
Button("show red") {
openWindow(id: "test")
}
}
}