2015-03-24 2 views
0

Как я могу открыть tray menu щелчком левой кнопки мыши?NWJS (Node-Webkit) Открыть меню лотка с помощью левого клика

По умолчанию меню открывается, щелкнув правой кнопкой мыши.

КОД:

// Load native UI library 
var gui = require('nw.gui'); 

// Create a tray icon 
var tray = new gui.Tray({ 
    title: 'Tray', 
    icon: 'img/icon.png', 
    click: function(){ 
     // Open tray menu here!! 
     console.log('READY!!!'); 
    } 
}); 

// Give it a menu 
var menu = new gui.Menu(); 
menu.append(new gui.MenuItem({ type: 'checkbox', label: 'box1' })); 
tray.menu = menu; 
+0

Имейте вы пытались прослушивать событие щелчка в лотке и вручную вызывать событие щелчка меню? ' tray.on ('click', function (click) { tray.menu.popup (click.x, click.y); }); ' должен делать трюк, но я его не тестировал. Возможно, вам придется сыграть с событием click, чтобы получить местоположение. Преобразуйте его в JSON и распечатайте, если он не работает. –

+0

@LukeAdams Я пробовал это, но x и y не относятся к окну, поэтому всплывающее окно открывается не в том месте – Kuf

ответ

0

Tray.menu

Получить или установить в меню Tray, меню будет показано при нажатии на иконку в трее.

В Mac OS X меню будет отображаться при нажатии на лоток (это единственное действие, доступное для значков лотка в Mac OS X). В Windows и Linux меню будет отображаться при однократном нажатии на лоток правой кнопкой мыши, щелчок левой кнопкой мыши отправляет событие клика и не отображает меню.

Чтобы уменьшить различия между различными платформами, свойство меню настройки - единственный способ привязать меню к лотку, нет способа открыть меню с помощью левой кнопки мыши, щелкнуть по Linux и Windows.

https://github.com/nwjs/nw.js/wiki/Tray

Однако, вы можете сделать меню пользовательского лотка, проверьте это: Create window-like menu on OS X

0

, как для меня это было нормально (CoffeeScript):

tray.on "click", 
    (clickEvent) => 
    win.focus() 
    tray.menu.popup(clickEvent.x - win.x - (window.screen.width - window.screen.availWidth), clickEvent.y - win.y - (window.screen.height - window.screen.availHeight)) 
    return false 

победа :

win = gui.Window.get() 
Смежные вопросы