[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는 위에서 생성한 윈도우 객체로 하면 된다.
최신 댓글