Files
2026-01-08 16:13:20 +08:00

30 lines
798 B
Swift

import SwiftUI
struct WindowAccessor: NSViewRepresentable {
final class WindowReportingView: NSView {
var onWindowChange: ((NSWindow?) -> Void)?
override func viewDidMoveToWindow() {
super.viewDidMoveToWindow()
DispatchQueue.main.async { [weak self] in
self?.onWindowChange?(self?.window)
}
}
}
let callback: (NSWindow?) -> Void
func makeNSView(context _: Context) -> WindowReportingView {
let view = WindowReportingView()
view.onWindowChange = callback
return view
}
func updateNSView(_ nsView: WindowReportingView, context _: Context) {
nsView.onWindowChange = callback
DispatchQueue.main.async {
callback(nsView.window)
}
}
}