跳转到主内容

Dock 菜单

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

note

在 macOS 上,Dock 是某些跨平台功能的切入点,如最近文件应用进度条。 阅读这些指南以了解更多详情。

Dock API

所有 Dock 功能都通过 app.dock 属性中的 Dock 类暴露。 每个 Electron 应用只有一个 Dock 实例,并且它只存在于 macOS。

应用的 Dock 图标的主要用途之一是显示额外的应用菜单。 Dock 菜单是由右键单击或 Ctrl+单击应用图标触发的。 默认情况下,应用的 Dock 菜单将带有系统提供的窗口管理工具,包括显示所有窗口、隐藏应用程序和切换不同的打开窗口的功能。

通过传递任何 Menu 实例到 dock.setMenu API,来设置一个应用自定义 Dock 菜单。

提示

让你的 Dock 菜单感觉更原生的最佳实践,参阅 Apple 对于 Dock 菜单的 Human Interface Guidelines

附加上下文菜单

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

// dock.setMenu 只能在 'ready' 时间发生后工作
app.whenReady().then(() => {
const dockMenu = Menu.buildFromTemplate([
{
label: 'New Window',
click: () => { const win = new BrowserWindow() }
}
// 在数组中添加更多的菜单项
])

// Dock 在 macOS 以外的系统为 undefined
app.dock?.setMenu(dockMenu)
})
note

与常规的上下文菜单不同,Dock 上下文菜单不需要手动使用 menu.popup API。 相反,Dock 对象帮你处理了点击事件。

提示

要了解更多关于 Electron 中制作菜单的信息,请参阅 菜单 指南。

可运行的 Fiddle demo

下面是一个可运行的示例,说明你该如何使用 Dock 菜单在你的 Electron 应用程序中创建和关闭窗口。 fiddle docs/latest/fiddles/menus/dock-menu