OS X

2015-02-27 24 views
6

'da pencere benzeri bir menü oluşturma this application gibi aynı türdeki bir tepsi menüsünü oluşturmak istiyorum. Node-webkit/nw.js kullanan uygulamaların listesinde olduğundan, bunun mümkün olduğunu düşünüyorum. Tüm belgeleri inceledim ve bunun nasıl elde edileceğine dair bir şey bulamadım. Google'da arama yapmak da gerçekten verimli değildi.OS X

Belki sizden biri bunu daha önce yapmış ve bana doğru yönde yollayabilir mi?

cevap

7

Önce uygulama görev çubuğunda görünmesini engellemek için gereken

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

Sonra menü tepsisini (üst çubuk) oluşturmak gerekir: (onun kaynağından örnek)

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

Sonra gizli bir pencere oluşturmak gerek ve bunu aşağıdaki kutuda göster:

// 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); 
}); 
+0

Bunun, node-webkit/nw.js'nin eski sürümünde çalışmadığını unutmayın. Biz 0.8.6 sürümünü kullanıyoruz çünkü nodeJS 0.10 kullanımını gerektiren çok sayıda yerel modül üzerinde çalışıyoruz. Önceki sürümlerde OS X'deki 'Tray' için' click' olayı çalışmaz, Windows ve Linux'ta olsa da. Bu konuda tartışıldığı gibi. https://github.com/nwjs/nw.js/issues/1874#issuecomment-67249147 – Feanaro