Electron 电子菜单加速器不工作
我正在学习Pluralsight的电子基础课程(Trent,2016)。我无法让加速器处理我的“退出”菜单项。下面是我的整个main.js文件。根据我所知(下图),菜单创建成功,直接单击退出菜单项确实会关闭应用程序,但Alt+W组合键不会。我在Windows10上。我错过了什么Electron 电子菜单加速器不工作,electron,Electron,我正在学习Pluralsight的电子基础课程(Trent,2016)。我无法让加速器处理我的“退出”菜单项。下面是我的整个main.js文件。根据我所知(下图),菜单创建成功,直接单击退出菜单项确实会关闭应用程序,但Alt+W组合键不会。我在Windows10上。我错过了什么 看起来在Windows上,它需要在浏览器窗口上加载一些内容。放置loadURL使其工作。但是需要尝试除加载URL之外的其他内容 app.on('ready', _ => { mainWindow = ne
看起来在Windows上,它需要在
浏览器窗口
上加载一些内容。放置loadURL
使其工作。但是需要尝试除加载URL之外的其他内容
app.on('ready', _ => {
mainWindow = new BrowserWindow()
mainWindow.loadURL('https://github.com')
const name = electron.app.getName()
const template = [
{
label: name,
submenu: [{
label: `About ${name}` ,
click: console.log('clicked!')
},{
type:'separator'
},{
label:'Quit',
click: _ =>{
app.quit()
},
accelerator:'CmdOrCtrl+Q'
}
]
}
]
const menu = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(menu)
})
不再支持
加速器
字符串。文档已在中更新,以阐明如何使用globalShortcut
定义快捷方式
:快捷方式使用注册方法注册到globalShortcut模块,即
const {app, globalShortcut} = require('electron')
app.on('ready', () => {
// Register a 'CommandOrControl+Y' shortcut listener.
globalShortcut.register('CommandOrControl+Y', () => {
// Do stuff when Y and either Command/Control is pressed.
})
})
因此请将代码更改为此
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
const Menu = electron.Menu;
const globalShortcut = electron.globalShortcut;
app.on('ready', _ => {
new BrowserWindow();
// Declare shortcuts
globalShortcut.register('Alt+W', () => app.quit());
const template = [
{
label: "File",
submenu: [{
label: 'About',
click: _ => {
console.log('clicked');
}
},
{
type: 'separator'
},
{
label: 'Quit',
click: _ => {
app.quit();
}
}]
}];
const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);
});
不再需要
意味着仍然可以使用旧方法,而且它还意味着,您不再能够将一个函数与两种不同的调用方法相关联,这是一件好事。@Michael good catch!编辑以澄清它不再受支持。请注意,globalShortcut不能替代菜单快捷方式(仅影响聚焦窗口)。它将在操作系统级别安装一个全局快捷方式(也就是说,将阻止任何其他应用程序使用该快捷方式)。详情如下:
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
const Menu = electron.Menu;
const globalShortcut = electron.globalShortcut;
app.on('ready', _ => {
new BrowserWindow();
// Declare shortcuts
globalShortcut.register('Alt+W', () => app.quit());
const template = [
{
label: "File",
submenu: [{
label: 'About',
click: _ => {
console.log('clicked');
}
},
{
type: 'separator'
},
{
label: 'Quit',
click: _ => {
app.quit();
}
}]
}];
const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);
});