跳转至

程序坞菜单

在 macOS 上,程序坞 是一个界面 元素,用于显示已打开和经常使用的应用。在应用打开或固定时,每个应用都会在程序坞中拥有自己的 图标。

[!NOTE] 在 macOS 上,程序坞是某些跨平台功能的入口,例如 最近文档 和 应用进度。 请阅读这些指南以获取更多详细信息。

程序坞 API

程序坞的所有功能都通过 app.dock 属性暴露的 Dock 类来提供。每个 Electron 应用只有一个 Dock 实例,并且该属性仅存在于 macOS 上。

你的应用的程序坞图标的主要用途之一是提供额外的应用菜单。程序坞菜单通过右键单击或 Ctrl 单击应用图标来触发。默认情况下,应用的程序坞菜单会包含系统提供的窗口管理工具, 包括显示所有窗口、隐藏应用以及在不同打开的窗口之间切换的功能。

要设置应用自定义的程序坞菜单,请将任意 Menu 实例传入 dock.setMenu API。

[!NOTE] MenuItem 上的 badge 不会在程序坞菜单中显示, 尽管同一项目会在应用菜单中显示它。

[!TIP] 有关让你的程序坞菜单更具原生感的最佳实践,请参阅 Apple 的 人机界面指南 中关于程序坞菜单的页面。

附加上下文菜单

Setting a Dock menu
const { app, BrowserWindow, Menu } = require('electron/main')

// dock.setMenu only works after the 'ready' event is fired
app.whenReady().then(() => {
  const dockMenu = Menu.buildFromTemplate([
    {
      label: 'New Window',
      click: () => { const win = new BrowserWindow() }
    }
    // add more menu options to the array
  ])

  // Dock is undefined on platforms outside of macOS
  // highlight-next-line
  app.dock?.setMenu(dockMenu)
})

[!NOTE] 与常规 上下文菜单 不同,程序坞上下文菜单无需使用 menu.popup API 手动 处理。相反,程序坞对象会为你处理点击事件。

[!TIP] 要了解有关在 Electron 中创建菜单的更多信息,请参阅 菜单 指南。

可运行的 Fiddle 演示

下面是一个可运行的示例,展示如何使用程序坞菜单在你的 Electron 应用中创建和关闭窗口。

fiddle docs/fiddles/menus/dock-menu

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 el/electron