7

好吧,我有一个相当简单的任务,这并不难。我有一个应用程序,它使用电子框架在 Windows 和 Mac 机器上使用该应用程序。我注意到我可以在 Windows 上使用 Ctrl+c/Ctrl+v 没有任何问题,但是在使用electron-packager之后我无法在 Mac 上使用 Cmd+c/Cmd+v 。

我找到了这样的解决方案(CMD + C / CMD + V not working),但我有一个自定义菜单,我不想在电子本身中定义和使用它。所以我发现了这个(没有 menue 的全局加速器,但问题仍然存在,似乎没有解决方案。像这样的解决方案(Local-Shortcut)也无法使用,因为它们没有获得选定的文本(例如来自文本框)作为参数。

我认为使用 Cmd+c / Cmd+v 不应该是一个真正的问题,因为它是每个应用程序中的常见操作,但我目前没有看到可用的解决方案。这也会影响所有其他快捷键,例如 Cmd+a 以选择所有内容。

4

1 回答 1

3

如果您真的想从菜单中隐藏这些快捷方式,似乎没有办法做到这一点。

目前,最好的解决方法是仅在 MacOS 上显示快捷方式菜单:

const { Menu } = require('electron')

const menuTemplate = [...];

if (process.platform === 'darwin') {
  menuTemplate.push({
    label: 'Edit',
    submenu: [
      {role: 'undo'},
      {role: 'redo'},
      {type: 'separator'},
      {role: 'cut'},
      {role: 'copy'},
      {role: 'paste'},
      {role: 'pasteandmatchstyle'},
      {role: 'delete'},
      {role: 'selectall'}
    ]
  })
}

const applicationMenu = Menu.buildFromTemplate(menuTemplate)
Menu.setApplicationMenu(applicationMenu)

https://blog.avocode.com/blog/4-must-know-tips-for-building-cross-platform-electron-apps

于 2017-06-28T11:10:55.320 回答