[Swift] macOS에서 SwiftUI로 만들어진 뷰 띄우기

SwiftUI로 macOS 메뉴 바 관련 앱 프로젝트를 하는 도중 설정 화면을 띄워야 하는 경우가 생겼는데.. 그런 경우 아래와 같이 새 NSWindow를 만들면 된다.

import SwiftUI

extension View {
  @discardableResult
  public func openWindow(title: String, sender: Any?) -> NSWindow {
    let hostingController = NSHostingController(rootView: self)
    let window = NSWindow(contentViewController: hostingController)
    window.styleMask = [.titled, .closable, .miniaturizable]
    window.contentViewController = hostingController
    window.title = title
    window.makeKeyAndOrderFront(self)
    return window
  }
}

위는 하나의 윈도우를 생성하는 코드고.. 해당 윈도우가 맨 위로 올라오게 할려면 아래와 같이 하면 된다.

window.orderFrontRegardless()

window는 위에서 생성한 윈도우 객체로 하면 된다.