メニュー
Wailsプロジェクトに、アプリケーションメニューを追加することができます。 Menu構造体を定義し、アプリケーション設定のMenuオプションへ設定するか、ランタイムのMenuSetApplicationMenuメソッドを呼び出すことで、メニューを表示させることができます。
メニューを作成する例:
app := NewApp()
AppMenu := menu.NewMenu()
if runtime.GOOS == "darwin" {
AppMenu.Append(menu.AppMenu()) // On macOS platform, this must be done right after `NewMenu()`
}
FileMenu := AppMenu.AddSubmenu("File")
FileMenu.AddText("&Open", keys.CmdOrCtrl("o"), func(_ *menu.CallbackData) {
// do something
})
FileMenu.AddSeparator()
FileMenu.AddText("Quit", keys.CmdOrCtrl("q"), func(_ *menu.CallbackData) {
// `rt` is an alias of "github.com/wailsapp/wails/v2/pkg/runtime" to prevent collision with standard package
rt.Quit(app.ctx)
})
if runtime.GOOS == "darwin" {
AppMenu.Append(menu.EditMenu()) // On macOS platform, EditMenu should be appended to enable Cmd+C, Cmd+V, Cmd+Z... shortcuts
}
err := wails.Run(&options.App{
Title: "Menus Demo",
Width: 800,
Height: 600,
Menu: AppMenu, // reference the menu above
Bind: []interface{}{
app,
},
)
// ...
Menu構造体を更新し、MenuUpdateApplicationMenuメソッドを呼び出すことで、メニューを動的に更新することも可能です。
上記の例では、ヘルパーメソッドを使用していますが、Menu構造体を手動で構築することも可能です。