【发布时间】:2015-12-29 09:27:39
【问题描述】:
我希望在 Electron 应用中捕捉点击应用窗口关闭按钮的事件。
我正在尝试为 Mac OSX 开发 Electron 应用程序。 我想隐藏应用程序窗口,而不是像其他 Mac 应用程序一样在用户单击窗口的关闭按钮时终止应用程序。
但是,我无法检测到系统应该终止还是应该隐藏,因为在任何情况下,当单击关闭按钮、操作系统关闭或应用程序通过退出命令终止,Cmd+Q。
有什么方法可以捕捉到在 Electron 应用中点击应用窗口关闭按钮的事件?
感谢您的帮助。
后记
为了检测点击关闭按钮的事件,我尝试了这段代码
var app = require('app');
var BrowserWindow = require('browser-window');
var Menu = require('menu');
var force_quit = false;
var menu = Menu.buildFromTemplate([
{
label: 'Sample',
submenu: [
{label: 'About App', selector: 'orderFrontStandardAboutPanel:'},
{label: 'Quit', accelerator: 'CmdOrCtrl+Q', click: function() {force_quit=true; app.quit();}}
]
}]);
app.on('window-all-closed', function(){
if(process.platform != 'darwin')
app.quit();
});
app.on('ready', function(){
Menu.setApplicationMenu(menu);
mainWindow = new BrowserWindow({width:800, height:600});
mainWindow.on('close', function(e){
if(!force_quit){
e.preventDefault();
mainWindow.hide();
}
});
mainWindow.on('closed', function(){
console.log("closed");
mainWindow = null;
app.quit();
});
app.on('activate-with-no-open-windows', function(){
mainWindow.show();
});
});
使用此代码,当单击应用程序窗口的关闭按钮时隐藏应用程序,并在键入Cmd+Q 时终止应用程序。但是,当我尝试关闭操作系统时,会阻止关闭事件。
【问题讨论】:
标签: javascript electron