Mac上Electron的快捷方式

时间:2017-06-28 08:26:38

标签: macos cross-platform electron electron-packager

嗯,我有一个非常简单的任务,这不是很难。 我有一个应用程序,它使用Expo Snacks在Windows和Mac计算机上使用该应用程序。 我注意到我可以在Windows上使用Ctrl + c / Ctrl + v而没有任何问题,但是在使用electron framework之后我无法在Mac上使用Cmd + c / Cmd + v。

我找到了像electron-packager这样的解决方案,但我有一个自定义的菜单,我不想在电子本身中定义和使用它。所以我找到this (CMD + C / CMD + V not working),但问题仍然存在,似乎没有解决方案。 像this (global accelerators without menue这样的解决方案也无法使用,因为它们不会将所选文本(例如来自文本框)作为参数。

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

1 个答案:

答案 0 :(得分:2)

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

目前,最佳解决方法是仅在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