Создать оконное меню в OS X

Я хотел бы создать такое же меню в трее, как это приложение. Поскольку это находится в списке приложений, которые используют node-webkit/nw.js, я думаю, что это возможно. Я просмотрел всю документацию и не смог ничего найти, как этого добиться. Поиск в Google также не был действительно плодотворным.

Может, один из вас, ребята, делал это раньше и мог направить меня в правильном направлении?

1 ответ

Решение

Во-первых, вы должны предотвратить появление приложения на панели задач.

{
    "name": "My App",
    "version": "1.0.0",
    "main": "app.html",
    "window": {
        "show": false,
        "show_in_taskbar": false
    }
}

Затем нужно создать трей (верхняя панель) меню: (пример из его источника)

tray = new app.node.gui.Tray({
    title: '',
    icon: 'assets/css/images/menu_icon.png',
    alticon: 'assets/css/images/menu_alticon.png',
    iconsAreTemplates: false
});

Затем нужно создать скрытое окно и показать его по нажатию в трее:

// create window
var params = {toolbar: app.devMode, frame: false, transparent: true, resizable: false, show: false};
window = app.node.gui.Window.open('templates/panel.html', params);

function showPopup (x, y) {
  window.on('document-end', function()
    window.moveTo(x - (window.window.width / 2) - 6, y);
    window.show();
    window.focus();
  });
}

// show panel when click in tray
tray.on('click', function (evt) {
  showPopup(evt.x, evt.y);
});
Другие вопросы по тегам