f1()onDisappear当用户关闭 macOS 应用程序窗口时似乎不会被调用
@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")
}
}
Run Code Online (Sandbox Code Playgroud)
struct ContentView: View {
@Environment(\.openWindow) private var openWindow
var body: some View {
Button("show red") {
openWindow(id: "test")
}
}
}
Run Code Online (Sandbox Code Playgroud)
对于执行此操作的“SwiftUI 方式”,请查看环境属性controlActiveState。.inactive当窗口失去焦点以及窗口关闭时,将设置该值。
struct ContentView: View {
@Environment(\.controlActiveState) private var controlActiveState
var body: some View {
Text("Hello, World!")
.onChange(of: controlActiveState) { newValue in
switch newValue {
case .key, .active:
break
case .inactive:
// Do your stuff.
@unknown default:
break
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2074 次 |
| 最近记录: |