MainWindowLifecycleConfigurator.swift 642 B

123456789101112131415161718
  1. import AppKit
  2. import SwiftUI
  3. struct MainWindowLifecycleConfigurator: NSViewRepresentable {
  4. func makeNSView(context: Context) -> WindowObservationView {
  5. let view = WindowObservationView()
  6. view.onWindowChange = { window in
  7. guard let window, let delegate = NSApp.delegate as? AppDelegate else { return }
  8. delegate.configureMainWindows()
  9. }
  10. return view
  11. }
  12. func updateNSView(_ nsView: WindowObservationView, context: Context) {
  13. guard let window = nsView.window, let delegate = NSApp.delegate as? AppDelegate else { return }
  14. delegate.configureMainWindows()
  15. }
  16. }