Post

Replies

Boosts

Views

Activity

Reply to How to open a window in SwiftUI?
view extension: extension View {   private func newWindowInternal(title: String, geometry: NSRect, style: NSWindow.StyleMask, delegate: NSWindowDelegate) -> NSWindow {     let window = NSWindow(       contentRect: geometry,       styleMask: style,       backing: .buffered,       defer: false)     window.center()     window.isReleasedWhenClosed = false     window.title = title     window.makeKeyAndOrderFront(nil)     window.delegate = delegate     return window   }       func openNewWindow(title: String, delegate: NSWindowDelegate, geometry: NSRect = NSRect(x: 20, y: 20, width: 640, height: 480), style:NSWindow.StyleMask = [.titled, .closable, .miniaturizable, .resizable]) {     self.newWindowInternal(title: title, geometry: geometry, style: style, delegate: delegate).contentView = NSHostingView(rootView: self)   } } call with: Text("This is a swiftui text").openNewWindow(...) Make sure to keep a strong reference to the window delegate, the window will keep only a weak ref.
Aug ’21