因此,我正在使用electron建立软件库。现在,我可以通过模板在软件中添加菜单
var menu = Menu.buildFromTemplate([
{
label: 'Menu',
submenu: [
{label:'open'},
{label:'save'},
{label:'Exit'}
]
}
])
Menu.setApplicationMenu(menu);
但是如何修改单个菜单项。例如,假设save
菜单在默认情况下处于禁用状态,并在单击open
之后被激活。还要说一下,点击open
后会出现一个新菜单edit
。我可以完整地创建完整的新模板,而只需用新模板更改以前的模板。但这是一种不好的方法,当我使用带有几个子菜单的几个菜单时,这不是一个实际的解决方案。那我可以只修改一个菜单项吗?
答案 0 :(得分:3)
您可以使用以下菜单获取菜单项:
import { Menu } from 'electron';
Menu.getApplicationMenu().items // all the items
Menu.getApplicationMenu().getMenuItemById('MENU_ITEM_ID') // get a single item by its id
此后,您在单个菜单项上具有以下几个属性:
- checked
- enabled
- visible
- label
- click
您可以根据需要自定义行为。
用电子3.0.5
进行测试,在27 Sep 2017
之前,方法getMenuItemById
不存在,您必须遍历所有项目。