Итак, я строю софтар, используя электрон. Теперь я могу добавить меню в программном обеспечении из шаблона
var menu = Menu.buildFromTemplate([
{
label: 'Menu',
submenu: [
{label:'open'},
{label:'save'},
{label:'Exit'}
]
}
])
Menu.setApplicationMenu(menu);
Но как мне изменить один пункт меню? Например, скажем, меню save
отключено по умолчанию и активируется после нажатия кнопки " open
. Также скажите, что после нажатия кнопки " open
появится новое меню edit
. Я могу полностью создать новый шаблон и просто заменить предыдущий шаблон новым. Но это плохой способ и не может быть практическим решением, когда я использую несколько меню с несколькими подменю. Так я могу изменить только один пункт меню по своему выбору?
Вы можете получить пункты меню, используя:
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
отсутствовал, и вам пришлось перебирать все элементы.