はじめに
以前も同じ内容の記事を書きました。
今までは設定ウインドウを開くにはAppKitを使用しないと実現できなかったのですが、macOS14からSwiftUIの標準で実装することができました。
サンプルアプリ
実装
DemoApp.swift
import SwiftUI
@main
struct DemoApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
Settings {
SettingView()
}
}
}
ContentView.swift
import SwiftUI
struct ContentView: View {
var body: some View {
SettingsLink {
Text("設定ウインドウを開く")
}
}
}
SettingView.swift
struct SettingView: View {
var body: some View {
TabView {
Text("General")
.tabItem {
Label("General", systemImage: "gear")
}
Text("License")
.tabItem {
Label("License", systemImage: "book")
}
}
.frame(width: 300, height: 300)
}
}
解説
今回のメインはSettingsLink
です。
引数はlabelでViewを取ります。
SettingsLink {
Text("設定ウインドウを開く")
}
設定ウインドウを表示させるために、DemoAppに以下の実装をします。
@main
struct Demo_MacOSApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
+ Settings {
+ SettingView()
+ }
}
}
おわり
SwiftUIが便利になっていくのは嬉しいですね。
公式ドキュメント