MacでElectronを使ったアプリを開発していますが、テキストボックス等でコピー&ペーストが効かないことがわかりました。 以下のサイトにあるように、Mac版のElectronアプリだとできないもんらしいです。 tech.kurojica.com
私の場合は以下のエラーが出て素直に実装できませんでした。
'selector' は型 'MenuItemConstructorOptions' に存在しません。
MenuItemConstructorOptionsにselectorというキーワードを足してやる必要があるようです。 以下のサイトではMenuItemConstructorOptionsを継承してselectorを追加しています。
この辺りを参考に私の環境では以下のようにすると無事Mac環境でもコピー&ペーストできました。
import { Menu, MenuItem } from "electron"; import { MenuItemConstructorOptions } from "electron/main"; const template: Array<MenuItemConstructorOptions | DarwinMenuItemConstructorOptions | MenuItem> = []; interface DarwinMenuItemConstructorOptions extends MenuItemConstructorOptions { selector?: string; submenu?: DarwinMenuItemConstructorOptions[] | Menu; } template.push({ label: "Edit", submenu: [ { label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:" }, { label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" }, { type: "separator" }, { label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:" }, { label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:" }, { label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" }, { label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" }, ], }); export const appMenu = Menu.buildFromTemplate(template);