MainWindowLifecycleConfigurator.swift 676 B

12345678910111213141516171819
  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. delegate.centerMainWindow()
  10. }
  11. return view
  12. }
  13. func updateNSView(_ nsView: WindowObservationView, context: Context) {
  14. guard nsView.window != nil, let delegate = NSApp.delegate as? AppDelegate else { return }
  15. delegate.configureMainWindows()
  16. }
  17. }