公司的一個項目需要開發跨平台,由於整個項目完全由我一個人開發,初次接觸 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 執行此操作。
運行項目后測試這個方法確實可行。