解决 Electron 项目在 OSX 复制和粘贴快捷键失效的问题

框架

浏览数:344

2019-8-9

公司的一个项目需要开发跨平台,由于整个项目完全由我一个人开发,初次接触 Electron,开发过程中遇到了不少坑,同样的代码 Windows 下复制和粘贴没有问题,Mac 下复制和粘贴失效,在网上搜了一下都是菜单栏的复制和粘贴。

相关的文章:https://www.jianshu.com/p/65eccd2b62f5

只好自己去 Electron Api 中找,随手一搜还真搜到了一个,不知道能否解决问题。

contents 对象是 webContents,webContents 可以通过 Window.webContents 获取到。

强制把复制和粘贴绑定到对应的快捷键:

  if (process.platform === "darwin") {
    let contents = mainWindow.webContents;
    globalShortcut.register("CommandOrControl+C", () => {
      contents.copy();
    });
    globalShortcut.register("CommandOrControl+V", () => {
      contents.paste();
    });
  }

因为 Windows 平台下可以正常使用,所以我只针对了 OSX 执行此操作。

运行项目后测试这个方法确实可行。

作者:Charles Zhang