|
Size: 2060
Comment:
|
← Revision 10 as of 2023-03-02 17:36:05 ⇥
Size: 2060
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 12: | Line 12: |
| const { app, Menu, shell } = require("electron"); | const { app, Menu, shell } = require('electron'); |
| Line 47: | Line 47: |
| const { app } = require("electron"); | const { app } = require('electron'); |
Electron Menu
Contents
Menu
const { app, Menu, shell } = require('electron');
const template = [
{
label: 'File',
submenu: [
{
label: 'Exit',
click() {
app.quit()
}
}
]
},
{
label: 'Help',
submenu: [
{
label: 'Learn More',
click: async () => {
await shell.openExternal('https://example.org');
}
}
]
}
];
const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);For a platform-specific conditional menu, try:
const { app } = require('electron');
const isMac = process.platform === 'darwin';
const template = [
...(isMac ? [{
label: app.name,
submenu: [
{ role: 'about' },
{ role: 'quit' }
]
}] : []),
{
label: 'File',
submenu: [
isMac ? { role: 'close' } : { role: 'quit' }
]
}
];
Accelerators
To set a shortcut key combination on some menu item, use the accelerator attribute.
const template = [
{
label: 'File',
submenu: [
{
label: 'Save',
accelerator: 'CmdOrCtrl+S',
click: saveFile()
}
]
}
]Apple computers have a unique keyboard. End users will expect the Command key to work like the Control key for everyone else. To simplify this common pattern, CmdOrCtrl is a valid accelerator (as seen above).
Nonetheless, for a platform-specific shortcut, try:
const isMac = process.platform === 'darwin';
const template = [
{
label: 'File',
submenu: [
{
role: 'Save File',
accelerator: isMac ? 'Cmd+S' : 'Ctrl+S',
click: saveFile()
}
]
}
]For alternatives, see electron-localshortcut.
