关闭窗口,但点击" x"在Mac OS上使用node webkit

时间:2014-08-19 18:19:10

标签: macos webkit node-webkit

通常在mac上,当我关闭窗口时它不会退出应用程序但是在使用node webkit时它会退出应用程序。

有没有人知道解决方法所以当我点击“x”时它只关闭窗口但不关闭应用程序?

提前感谢您的帮助。 enter image description here

4 个答案:

答案 0 :(得分:3)

这适用于MAC:

var gui = require('nw.gui');
var window = gui.Window.get();

gui.App.on('reopen', function(){
    window.show();
})

window.on('close', function(){
    window.hide();
});

使用上面的代码时,如果用户点击关闭按钮,它会隐藏窗口而不是终止应用程序 当用户点击Dock中的app图标时,会触发GUI reopen事件,该事件将显示隐藏的窗口 注意:重新打开当前是MAC特定功能 NodeWebkit App Features

中提供了更多详细信息

答案 1 :(得分:3)

不是一个完整的解决方案,所有学分都归功于Abhishek的答案。

我已对其进行了改进,以允许用户关闭应用,而不仅仅是退出窗口。

  var hidden = false;
  gui.App.on('reopen', function(){
    hidden = false;
    win.show();
  })

  win.on('close', function(){
    if (hidden == true) {
      gui.App.quit();
    } else {
      win.hide();
      hidden = true;
    }
  });

首次点击红色按钮时,该窗口会关闭,但仍会在停靠栏中运行,然后右键单击图标并单击退出,应用程序将完全关闭。

答案 2 :(得分:2)

如果"退出&#34>,窗口会将参数传递给回调函数。单击,从菜单栏或停靠点(也在命令+ Q)。 我使用此代码并按预期工作:

var gui = require('nw.gui'),
    app = gui.App,
    win = gui.Window.get();

win.on('close', function (action) {
    'quit' === action ?
        app.quit() :
        win.hide();
});

app.on('reopen', function(){
    win.show();
});

答案 3 :(得分:0)

是的,有办法。我称之为 command + Q 。 另一种方法是 command + control + power