我是电子新手,所以我尝试理解入门代码。我对一块代码感到困惑。
app.on('window-all-closed', () => {
if(process.platform !== 'darwin') {
app.quit();
}
});
代码的作用是,如果所有窗口都关闭,则它将终止整个程序,而macOS是一个例外。
问题是,没有其他处理程序可让macOS调用app.quit()
。因此,我想知道在macOS中,如果不手动调用app.quit()
,在按下command + q
时会自动调用吗?
答案 0 :(得分:0)
Electron电子文档非常好:Event: 'window-all-closed'
事件:“全封闭窗口”
关闭所有窗口时发出。
如果您不订阅此事件并且所有窗口都已关闭,则 默认行为是退出应用程序;但是,如果您订阅,您 控制应用程序是否退出。如果用户按Cmd + Q,或者 开发人员叫app.quit(),Electron首先会尝试关闭所有 Windows,然后发出will-quit事件,在这种情况下, 窗口全关闭事件将不会发出。
关于默认的OSX行为
在Windows系统上,窗口通常等于应用程序。这个 意味着当您关闭窗口时,您也会关闭应用程序 (只要是打开该应用程序的最后一个窗口)。上 在Mac上,与应用程序本身相比,窗口更像是文档。 关闭窗口时,您关闭的是以前的特定文档 看,但是应用程序本身一直在运行。 – https://www.howtogeek.com/279086/why-do-mac-apps-stay-open-when-i-hit-the-red-x-button/