我正在学习 Pluralsight 上的电子基础知识课程(Trent,2016)。我无法让加速器在“退出”菜单项上工作。下面是我的整个 main.js 文件。据我所知,菜单已成功创建(如下图),直接单击“退出”菜单项确实会关闭应用程序,但 Alt+W 组合键不会关闭该应用程序。我使用的是 Windows 10。我缺少什么?
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
const Menu = electron.Menu;
app.on('ready', _ => {
new BrowserWindow();
const template = [
{
label: "File",
submenu: [{
label: 'About',
click: _ => {
console.log('clicked');
}
},
{
type: 'separator'
},
{
label: 'Quit',
accelerator: 'Alt+W',
click: _ => {
app.quit();
}
}]
}];
const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);
});
Run Code Online (Sandbox Code Playgroud)
accelerator不再支持字符串。该文档在v1.4.5中进行了更新,以阐明如何使用globalShortcut.
加速器文档:快捷方式使用 register 方法向 globalShortcut 模块注册,即
Run Code Online (Sandbox Code Playgroud)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);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3690 次 |
| 最近记录: |