2015-02-27 20 views
6

Tôi muốn tạo cùng một loại menu khay như this application. Bởi vì nó nằm trong danh sách các ứng dụng sử dụng node-webkit/nw.js, tôi nghĩ là có thể. Tôi đã xem xét tất cả các tài liệu và không thể tìm thấy bất cứ điều gì về cách để đạt được điều đó. Tìm kiếm Google cũng không thực sự hiệu quả.Tạo menu giống như cửa sổ trên OS X

Có thể một trong các bạn đã làm điều này trước đây và có thể gửi cho tôi đúng hướng?

Trả lời

7

Trước tiên, bạn cần phải ngăn chặn ứng dụng xuất hiện trong thanh tác vụ

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

Sau đó, bạn cần phải tạo ra khay (thanh trên cùng) menu: (ví dụ từ nguồn của mình)

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

Sau đó, cần tạo ra cửa sổ ẩn và hiển thị nó khi nhấp vào trong khay:

// 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

Hãy lưu ý rằng điều này không hoạt động trên phiên bản cũ của node-webkit/nw.js. Chúng tôi đang sử dụng phiên bản 0.8.6 vì chúng tôi chạy trên rất nhiều mô-đun gốc yêu cầu sử dụng nodeJS 0.10. Trong các phiên bản trước đó, sự kiện 'click' cho' Khay' trong OS X không kích hoạt, nó sẽ xuất hiện trong Windows và Linux. Như đã được thảo luận trong vấn đề này. https://github.com/nwjs/nw.js/issues/1874#issuecomment-67249147 – Feanaro

Các vấn đề liên quan