![見出し画像](https://assets.st-note.com/production/uploads/images/79299297/rectangle_large_type_2_f8952b88fa186f41760fda8763af2e6f.png?width=800)
SwiftUIでいこう! - macOS App (2)
Macアプリの作成なのでiPhoneなどにはないメニューバーの作り方を参考サイトを見ながら実際に動かしてみます(Mac版Swift Playgrounds: Playgrounds:.appで実行します)。
デフォルトでできている以下コードにモディファイアをつけてメニューを操作します。
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
基本になるモディファイアが
commands
この命令に以下の動作をつけていきます。
Button、Picker、Divider、Toggle、などのSwiftUIビューを使用して、メニューの階層を作ることができます。
新しいメニューを作る
CommandMenu
を使います。
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
.commands{
CommandMenu("Menu") {
Button("Print message") {
print("Hello World!")
}.keyboardShortcut("p")
}
}
}
}
![](https://assets.st-note.com/img/1654090663547-UCEMzf873R.png?width=800)
"Menu"という名前のメニューができて、"Print message"が選択できるようになっています。これを押すと、"print("Hello World!")"が実行されます。
ショートカットも"⌘P"となっていて"⌘P"キーボードで実際にショートカット"⌘P"すると"print("Hello World!")"が実行されます。
初めからあるメニューに追加、置き換える
CommandGroup
を使います。
.commands{
CommandGroup(before: CommandGroupPlacement.newItem) {
Button("before item") {
print("before item")
}
}
}
とすると既存の"File(ファイル)"メニューを開くと一番上に新しい"before item"ができています。
メニューについては"CommandGroupPlacement"で指定します。
例えば、
.newItem ・・・ ファイルメニュー
とすれば既存の"File(ファイル)"メニューに機能が追加できます。
この記事が気に入ったらサポートをしてみませんか?