如何从渲染器进程(浏览器窗口)添加menuItem

时间:2016-02-04 14:02:07

标签: javascript electron

我尝试使用远程执行此操作,但无法理解其工作方式=(

我需要做什么: 1)ajax调用服务器(ok) 2)服务器响应' issue123' (好) 3)添加问题123'在OS X标准菜单栏中(如何?)

我创建了menuItem - 问题,并且它在加载应用程序时正常工作,但我怎样才能推送' issue123'到这个菜单?

2 个答案:

答案 0 :(得分:3)

在菜单中添加或删除菜单项后,您需要再次调用Menu.setApplicationMenu()BrowserWindow.setMenu()来重建本机菜单。但是,如果您修改菜单项上的enabledvisiblechecked属性,则无需再次调用上述方法。

来源:

答案 1 :(得分:0)

哦......第一次不容易;)

例如: ...

const trackerMenu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(trackerMenu);

const issuesMenu = trackerMenu.items[4]; //save your submenu item

...

success: function(data) { //my ajax callback

   let menuItem = new MenuItem({
     label: data,
     click: function(item, focusedWindow) {
       console.log(item)
     }
   })

   issuesMenu.submenu.insert(0, menuItem);
   Menu.setApplicationMenu(trackerMenu);
}