One Logo Pool Ball
SwiftUI · IOS API REFERENCE

OpenWindowAction

struct · iOS 16.0+ · SDK 27.1

@MainActor @preconcurrency struct OpenWindowAction

An action that presents a window. Use the ``EnvironmentValues/openWindow`` environment value to get the instance of this structure for a given ``Environment``. Then call the instance to open a window. You call the instance directly because it defines a ``OpenWindowAction/callAsFunction(id:)`` method that Swift calls when you call the instance. For example, you can define a button that opens a new mail viewer window: @main struct Mail: App { var body: some Scene { WindowGroup(id: "mail-viewer") { MailViewer() } } } struct NewViewerButton: View { @Environment(\.openWindow) private var openWindow var body: some View { Button("Open new mail viewer") { openWindow(id: "mail-viewer") } } } You indicate which scene to open by providing one of the following: * A string identifier that you pass through the `id` parameter, as in the above example. * A `value` parameter that has a type that matches the type that you specify in the scene's initializer. * Both an identifier and a value. This enables you to define multiple window groups that take input values of the same type, like a <doc://com.apple.documentation/documentation/Foundation/UUID>. Use the first option to target either a ``WindowGroup`` or a ``Window`` scene in your app that has a matching identifier. For a `WindowGroup`, the system creates a new window for the group. If the window group presents data, the system provides the default value or `nil` to the window's root view. If the targeted scene is a `Window`, the system orders it to the front. Use the other two options to target a `WindowGroup` and provide a value to present. If the interface already has a window from the group that's presenting the specified value, the system brings the window to the front. Otherwise, the system creates a new window and passes a binding to the specified value.

Members (3)

method · iOS 16.0+

callAsFunction

TypeScript
callAsFunctionIdValue(id: string, value: number): Promise<void>
Swift declaration
@MainActor @preconcurrency func callAsFunction<D>(id: String, value: D) where D : Decodable, D : Encodable, D : Hashable

Opens a window defined by the window group that presents the specified value type and that's associated with the specified identifier. Don't call this method directly. SwiftUI calls it when you call the ``EnvironmentValues/openWindow`` action with an identifier and a value: openWindow(id: "message", value: message.id) For information about how Swift uses the `callAsFunction()` method to simplify call site syntax, see [Methods with Special Names](https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID622) in *The Swift Programming Language*. - Parameters: - id: The identifier of the scene to present. - value: The value to present.

method · iOS 16.0+

callAsFunction

TypeScript
callAsFunctionId(id: string): Promise<void>
Swift declaration
@MainActor @preconcurrency func callAsFunction(id: String)

Opens a window that's associated with the specified identifier. Don't call this method directly. SwiftUI calls it when you call the ``EnvironmentValues/openWindow`` action with an identifier: openWindow(id: "message") For information about how Swift uses the `callAsFunction()` method to simplify call site syntax, see [Methods with Special Names](https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID622) in *The Swift Programming Language*. - Parameter id: The identifier of the scene to present.

method · iOS 16.0+

callAsFunction

TypeScript
callAsFunctionValue(value: number): Promise<void>
Swift declaration
@MainActor @preconcurrency func callAsFunction<D>(value: D) where D : Decodable, D : Encodable, D : Hashable

Opens a window defined by a window group that presents the type of the specified value. Don't call this method directly. SwiftUI calls it when you call the ``EnvironmentValues/openWindow`` action with a value: openWindow(value: message.id) For information about how Swift uses the `callAsFunction()` method to simplify call site syntax, see [Methods with Special Names](https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID622) in *The Swift Programming Language*. - Parameter value: The value to present.

Skipped declarations

No declarations were skipped in this snapshot.

All SwiftUI types →