Электрон - Сочетания клавиш для меню в трее - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь создать локальный ярлык (срабатывает только при активном окне) с помощью меню задач, для которого я нацеливаюсь клавишей «Escape»

С помощью следующего кода менюэлемент отображается успешно, и событие щелчка срабатывает правильно, когда я нажимаю на элемент через меню.Однако, когда я пытаюсь добавить ускоритель и использовать сочетание клавиш, оно не срабатывает.

const contextMenu = Menu.buildFromTemplate([
  { role: 'about' },
  { 
    label: 'Exit Fullscreen', 
    accelerator: 'Escape', 
    click() { console.log('Event fired') }
  },
  { label: 'Quit', click() { app.quit() } }
])

Я проверил, что это не проблема тихого сбоя, когда возникает конфликт с сочетаниями клавиш, когда он используется, регистрируя глобальные сочетания клавиш, которые работали по назначению.

Другая любопытная вещь заключается в том, что если я передаю тот же результат из Menu.buildFromTemplate() в строку меню через BrowserWindow.setMenu(), то он отлично работает, как указано выше.

Это заставило меня задуматься, а не являются ли сочетания клавиш для меню в трее дажеподдерживается?

На основании приведенных ниже документов создается впечатление, что контекстное меню для панели задач принимает те же объекты Menu / MenuItem, что и строка меню в BrowserWindow.

https://electronjs.org/docs/api/tray

Глядя на документацию для объекта ускорителя, он говорит, что Shortcuts are registered with the globalShortcut module using the register method..., но, как указано выше, при использовании меню BrowserWindow он работал без необходимости глобального регистра.

https://electronjs.org/docs/api/accelerator

Я что-то здесь пропускаю или сочетания клавиш просто недоступны для контекстных меню в трее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...