2015-09-20 66 views
1

我正在爲node-webkit mac應用程序製作菜單欄。
我想追加一個「替換」菜單項到第二個/根菜單(編輯>撤消,重做等)。
我知道如何附加到默認菜單欄.createMacBuiltin()創建,但它只附加到該列表的頂部。我想在「全選」後追加「替換」。無論如何要將它追加到該列表的更遠處?Node-Webkit菜單欄添加新項目在createMacBuiltin列表中

enter image description here

// Create menu container 
var Menu = new gui.Menu({ 
    type: 'menubar' 
}); 

//initialize default mac menu 
Menu.createMacBuiltin("Hello World"); 

// Get the root menu from the default mac menu 
var editMenu = Menu.items[1].submenu; 
var windowMenu = Menu.items[2].submenu; 

// Append new item to root menu 
editMenu.insert(
    new gui.MenuItem({ 
    type: "normal", 
    label: 'Replace', 
    key: "f", 
    modifiers: "cmd+alt", 
    click : function() { 
     $("[data-action=replace]").trigger("click"); 
    } 
    }) 
); 
windowMenu.insert(
    new gui.MenuItem({ 
    type: "normal", 
    label: 'Toggle Fullscreen', 
    key: "F", 
    modifiers: "cmd", 
    click : function() { 
     win.toggleFullscreen(); 
    } 
    }) 
); 
windowMenu.insert(
    new gui.MenuItem({ 
    type: "normal", 
    label: 'Reload App', 
    key: "r", 
    modifiers: "shift+cmd", 
    click : function() { 
     location.reload(true); 
    } 
    }) 
); 

// Append Menu to Window 
win.menu = Menu; 

回答

0

貌似editMenu.insert將菜單項添加到頂部,但editMenu.append將其添加到底部。 ()

我還沒有找到一種方法來刪除DictationEmoji & Symbols,但能夠解決我的問題與以下。

// Append new item to root menu 
editMenu.append(
    new gui.MenuItem({ 
    type: "normal", 
    label: 'Replace', 
    key: "f", 
    modifiers: "cmd+alt", 
    click : function() { 
     $("[data-action=replace]").trigger("click"); 
    } 
    }) 
); 

我是能夠成功地去掉 「關於MyApp的」 使用下面的...

rootMenu.removeAt(1); 
相關問題