2017-06-28 7 views
6

まあ、私はかなり簡単な作業をしていますが、これは本当に難しいことではありません。 私はelectron frameworkを使用してWindowsとMacマシン上でアプリケーションを使用するアプリを持っています。私は何の問題もなくWindows上ではCtrl + C/Ctrlキー+ vを使用することが、私は私がelectron-packagerを使用した後に、Mac上でCmdを+ C/Cmdを+ vを使用することはできませんよ I通知。MacのElectronのショートカット

私はthis (CMD + C/CMD + V not working)のような解決策を見つけましたが、私は、カスタムmenueを持っていると私は電子自体に1を定義して使用する必要はありません。だから私はthis (global accelerators without menueを見つけましたが、問題はまだ開いており、解決策はないようです。 this (Local-Shortcut)のようなソリューションも、パラメータとして選択されたテキスト(テキストボックスなど)を取得しないため、使用できません。

は、私はそれがすべてのアプリケーションで一般的なアクションであることから、現実的な問題ではありませんCmdを+ C/Cmdを+ vを使用してと思うが、私は、現時点で使用可能な解決策が表示されません。 これはまた、Cmd + aのような他のすべてのショートカットにすべてを選択させるのにも影響します。

+0

[ローカル]の問題は何(https://github.com/electron/電子/ BLOB /マスター/ドキュメント/チュートリアル/ keyboard-shortcuts.md)/ [グローバル](https://github.com/electron/electron/blob/master/docs/api/global-shortcut.md)ショートカット? –

+0

選択したテキストをパラメータとして取得する方法はありません。少なくとも私はそれを得る方法を見つけることができませんでした。 – thardes2

+0

[https://github.com/electron/electron/blob/master/docs/api/clipboard.md](https://github.com/electron/electron/blob/master/docs/api/clipboard)はどうですか? .md)? –

答えて

1

あなたが本当にメニューからこれらのショートカットを非表示にする場合、それを行うための手立てはないように思えます。現時点では、最適な回避策は唯一の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

+0

この動作は、電子/電子#3787に記載されているように設計されています。しかし、一般的には、menueアプローチが働いています。個々のコードは、appオブジェクトの準備完了状態の後に呼び出される必要があります – thardes2

関連する問題