2015-06-10 13 views
5

Próbuję uchwycić kliknięcie nawet na kliknięcie ikony zasobnika z menu kontekstowego na OSX, ale według docs ta jest wyłączona w OSX z jakiegoś powodu:Menu kontekstowe kliknij/otwórz wydarzenie za pomocą Atom Shell/Electron?

Platform limitations: 

On OS X clicked event will be ignored if the tray icon has context menu. 

ja zastanawiałem się, czy istnieje to inny sposób na sprawdzenie, kiedy ikona taca z menu kontekstowym jest przedmiotem interakcji?

kod relavent:

var app = require('app'); 
var path = require('path') 
var Menu = require('menu'); 
var MenuItem = require('menu-item'); 
var Tray = require('tray'); 

var appIcon = null; 
var menu = null; 
app.on('ready', function(){ 
    appIcon = new Tray(path.join(__dirname, 'images/icon.png')); 

    appIcon.on('clicked', function(event, bounds) { 
     console.log('clicked'); 
    }); 

    menu = new Menu(); 

    menu.append(new MenuItem({ label: 'Quit', id: 'quit', click: function() { app.quit(); } })); 
    appIcon.setContextMenu(menu); 

}); 

Odpowiedz

1

Teraz działa na OS X (10.11.4).

Proszę sprawdzić. main.js:

// Load in dependencies 
var app = require('app'); 
var Tray = require('tray'); 

// When the Electron has loaded 
app.on('ready', function onready() { 
    // Log to the console to verify logging works 
    console.log('Hello World!'); 

    // Create a tray 
    var tray = new Tray(__dirname + '/icon.png'); 

    // When the tray icon is clicked, log to our console 
    tray.on('click', function handleClicked() { 
    console.log('Tray clicked'); 
    }); 
}); 

Run:

electron main.js