ぜのぜ

しりとりしようぜのぜのぜのぜ

SwiftUIでメニューを追加する

アプリ作るにあたって使ったシリーズ.今回はメニューバーに表示されているアプリ固有のメニューを追加する方法.

使い方

新しくメニューを作りたいときはCommandMenuを,既存のメニューに追加したいときはCommandGroupを使う.

このコードだと画像のようになる. 既存のメニューに追加されたメニュー新しく作ったメニュー

import SwiftUI

@main
struct MenuApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        .commands {
            CommandMenu("CommandMenu") {
                Button("Menu Item") {
                    print("Menu Item")
                }
                Divider()
                Menu("Sub Menu") {
                    Button("Sub Menu Item") {
                        print("Sub Menu Item")
                    }
                }
            }
            CommandGroup(after: .textEditing) {
                Button("Menu Item added after existing Edit menu") {
                    print("Menu Item added after existing Edit menu")
                }
            }
        }
    }
}

その他

既存のメニューを置き換えたり任意のViewを表示したりできるので色々できそう.詳しくはドキュメントを読んでくれ!!

そういえばショートカットを追加するといい感じに表示してくれるのでEmojiGachaでも使った.ショートカットを追加する方法についてはこの記事で書いた. ショートカットが追加されたメニュー

Menu("Sub Menu") {
    Button("Sub Menu Item") {
        print("Sub Menu Item")
    }
}
.keyboardShortcut(.space, modifiers: .command)