我想在电子版webview中嵌入的网页的输入框中粘贴带有快捷方式的文本(例如,CMD + V)。
在开发模式下,粘贴文本无需任何实现即可工作。但在使用electron-packager
打包应用程序后,粘贴功能无效。我对此没有任何线索。
如果您想查看代码,请查看此存储库:https://github.com/junghyun87/dictionary-in-tray
答案 0 :(得分:1)
我从您的存储库中获取了代码,并在使用打包的应用程序时在macOS上遇到了同样的问题。
为了启用键盘快捷键,包括剪切,复制,粘贴的快捷键,它们仍然必须在菜单项中定义,即使菜单栏是隐藏的,这通常是托盘应用程序的情况。
由于某种原因,似乎打包的应用程序不包含通常的标准菜单项和相关的快捷方式。
我已经能够通过在createMenu()
中添加定义基本菜单的main.js
函数来恢复所需的行为:
app.on('ready', () => {
createTray();
createWindow();
createMenu();
});
const createMenu = () => {
const { Menu } = require('electron');
let menuTemplate =
[
{
label: app.getName(),
submenu: [
{role: 'quit'}
]
},
{
label: 'Edit',
submenu: [
{role: 'undo'},
{role: 'redo'},
{role: 'cut'},
{role: 'copy'},
{role: 'paste'},
{role: 'selectall'}
]
}
];
Menu.setApplicationMenu (Menu.buildFromTemplate (menuTemplate));
};
... HTH