この投稿は何か?
SwiftUIフレームワークにおけるWindowGroup
について、Apple Developerサイトのリファレンスを独自に翻訳・解釈したものです。
WindowGroup構造体
形式的に構造化されたウィンドウをまとめたシーンです。
struct WindowGroup<Content> where Content : View
アプリで表示されるビュー階層のコンテナとしてWindowGroup
を使用します。グループのコンテンツとして宣言した階層は、アプリがそのグループから作成する各ウィンドウのテンプレートとして機能します。
@main
struct Mail: App {
var body: some Scene {
WindowGroup {
MailViewer() // Declare a view hierarchy here.
}
}
}
SwiftUIはプラットフォーム固有の動作を扱います。例えば、SwiftUIをサポートしているmacOSやiPadOSでは、ユーザーはグループから複数のウィンドウを同時に開くことができます。macOSでは、ユーザーは開いているウィンドウをタブ付きインターフェイスにまとめることができます。また、ウィンドウグループは「標準的にウィンドウを管理するコマンド」を自動的に提供します。
グループから作成されたすべてのウィンドウは、状態が互いに影響しません。例えば、グループから新たに作成されたウィンドウごとに、システムはシーンのビュー階層によってインスタンス化されたState
またはStateObject
変数のための新しいストレージを割り当てます。
ドキュメントベースではないアプリケーションの場合、主なインターフェイスにはウィンドウグループを使用します。ドキュメントベースのアプリでは、DocumentGroup
を使用します。