我在Electron应用程序中有一个子菜单,其中包含几个类型为“复选框”的MenuItem:
{
label: 'Search settings',
submenu: [
{
type: 'checkbox',
checked: false,
label: 'Aerodromes',
click: (/* menuItem, currentWindow, event */) => {
console.log('')
console.log('menuItem Aerodromes is clicked')
// TODO: change userPrefs about search sources
}
},
{
type: 'checkbox',
checked: false,
label: 'Heliports and HL',
click: (/* event, focusedWindow, focusedWebContents */) => {
console.log('')
console.log('menuItem Heliports and HL is clicked')
// TODO: change userPrefs about search sources
}
},
{
type: 'checkbox',
checked: false,
label: 'LP',
click: (/* event, focusedWindow, focusedWebContents */) => {
console.log('')
console.log('menuItem LP is clicked')
// TODO: change userPrefs about search sources
}
},
...
]
},
当我单击所有这些项目时,状态“已检查/未检查”正确更新,但是只有在再次打开此子菜单后,我才能看到更改,因为单击任何项目后,整个子菜单都会立即关闭(隐藏)。这不是我想要的。我希望让用户能够激活/停用(例如,选中/取消选中)整个子菜单中的所有这些复选框,直到他决定完成为止。我该如何实现这种行为?任何好的建议将不胜感激。
P.S .:我使用'click'方法的参数玩了很多,但没有成功('event.preventDefault不是函数'等)