WindowGroupから新しいWindowGroupを生成する方法
こんにちは。
モバイルソリューショングループのyoshino.kです。
このブログ記事では、ボタンタップ時に新規のWindowGroupを生成する方法について解説します。
イントロ
Apple Vision Proのアプリケーション開発では、SwiftUIを使用してユーザーインターフェースを構築します。
WindowGroupは、アプリケーションのウィンドウを管理するための基本的なコンテナです。
新しいWindowGroupを生成することで、複数のウィンドウを持つアプリケーションを作成できます。
WindowGroupの定義
基本的なWindowGroupは以下のように定義できます。
import SwiftUI
@main
struct WindowApp: App {
var body: some Scene {
WindowGroup(id: "newWindowGroupe") {
ContentView()
}
}
}
このコードは、ContentViewを表示する単一のウィンドウを持つアプリケーションを定義しています。
新規のWindowGroupを生成する
ここから新規のWindowGroupを作成する準備に入ります。
まず、新しいWindowを生成するボタンを作成します。
ここでは、”newWindowGroup”というIDを持つWindowGroupを呼び出す設定にしています。
import SwiftUI
struct CreateWindowButton: View {
@Environment(\.openWindow) private var openWindow
var body: some View {
Button(action: {
// ボタンが押されたときの処理
openWindow(id: "newWindowGroup")
}) {
Text("WindowGroupを追加")
.bold()
.font(.system(size: 28))
.foregroundColor(.black)
.padding()
}
}
}
次に、ボタンタップ時に生成されるWindowを設定します。
表示したいWindowGroupには、ボタンと同じIDを設定します。
import SwiftUI
@main
struct WindowApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
// ボタンタップ時に表示したいWindowGroup
WindowGroup(id: "newWindowGroup") {
Text("Hello, World!")
}
}
}
最後に、ContentViewの中に、新しいWindowGroupを生成するボタンを配置します。
import SwiftUI
struct ContentView: View {
var body: some View {
CreateWindowButton()
}
}
まとめ
このようにして、ボタンタップ時に新しいWindowGroupを生成することができます。
これにより、ユーザーは複数のウィンドウを操作できるようになり、よりリッチな体験を提供することが可能です。
ぜひ、この手法を試してみてください。