2015-02-27 9 views
6

पर विंडो जैसी मेनू बनाएं, मैं this application जैसे ट्रे मेनू का एक ही प्रकार बनाना चाहता हूं। क्योंकि यह उन अनुप्रयोगों की सूची पर है जो नोड-वेबकिट/nw.js का उपयोग करते हैं, मुझे लगता है कि यह संभव है। मैंने सभी दस्तावेज देखे हैं और इसे प्राप्त करने के तरीके पर कुछ भी नहीं मिला। Google को खोजना भी वास्तव में उपयोगी नहीं था।ओएस एक्स

शायद आप में से एक ने पहले यह किया है और मुझे सही दिशा में भेज सकता है?

उत्तर

7

सबसे पहले आप एप्लिकेशन टास्कबार में दिखाई देते हैं को रोकने के लिए की जरूरत है

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

ध्यान रखें कि यह नोड-वेबकिट/nw.js के पुराने संस्करण पर काम नहीं करता है। हम संस्करण 0.8.6 का उपयोग कर रहे हैं क्योंकि हम बहुत सारे देशी मॉड्यूल पर चलते हैं जिन्हें नोडजेएस 0.10 के उपयोग की आवश्यकता होती है। पुराने संस्करणों में ओएस एक्स में 'ट्रे' के लिए 'क्लिक' ईवेंट आग नहीं है, यह विंडोज और लिनक्स में हालांकि करता है। जैसा कि इस मुद्दे पर चर्चा की गई है। https://github.com/nwjs/nw.js/issues/1874#issuecomment-67249147 – Feanaro