how do I create a window using swift ui
Asked on 07/31/2024
1 search
To create a window using SwiftUI, you can use the WindowGroup
scene type. Here's a basic example to get you started:
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
struct ContentView: View {
var body: some View {
Text("Hello, World!")
.padding()
}
}
In this example, WindowGroup
is used to create a window that displays the ContentView
. The @main
attribute marks the entry point of the app.
For more advanced customization of macOS windows using SwiftUI, you can refer to the session Tailor macOS windows with SwiftUI. This session covers how to use new SwiftUI APIs to further tune the windows for your app's content, including customizing toolbars, window behaviors, and window placements.
If you want to learn about working with windows in a multi-window environment, you can check out the session Work with windows in SwiftUI. This session discusses how to define, open, and use windows, control their initial placement, and manage their sizes.
Relevant Sessions

Tailor macOS windows with SwiftUI
Make your windows feel tailor-made for macOS. Fine-tune your app’s windows for focused purposes, ease of use, and to express functionality. Use SwiftUI to style window toolbars and backgrounds. Arrange your windows with precision, and make smart decisions about restoration and minimization.

What’s new in AppKit
Discover the latest advances in Mac app development. Get an overview of the new features in macOS Sequoia, and how to adopt them in your app. Explore new ways to integrate your existing code with SwiftUI. Learn about the improvements made to numerous AppKit controls, like toolbars, menus, text input, and more.

What’s new in SwiftUI
Learn how you can use SwiftUI to build great apps for any Apple platform. Explore a fresh new look and feel for tabs and documents on iPadOS. Improve your window management with new windowing APIs, and gain more control over immersive spaces and volumes in your visionOS apps. We’ll also take you through other exciting refinements that help you make expressive charts, customize and layout text, and so much more.