首页 > 解决方案 > 是否可以通过单击 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
            }
          },
          ...
        ]
      },

当我单击每个项目时,状态“已检查/未检查”更新正确,但我只能在再次重新打开此子菜单后才能看到更改,因为单击任何项​​目后,整个子菜单都会立即关闭(隐藏)。这有点不是我想要的。我更愿意让用户能够激活/取消激活(例如选中/取消选中)整个子菜单中的所有这些复选框项,直到他决定完成。我怎样才能实现这种行为?任何好的建议将不胜感激。

PS:我玩了很多“点击”方法的参数,但没有成功(“event.preventDefault 不是函数”等)

标签: javascriptelectronmenu-items

解决方案


推荐阅读