我想构建一个使用撤销重做功能的基于 Electron 的应用程序。现在可以在菜单中放置撤消/重做条目,并根据 Electron 中已经存在的角色进行操作。 role: undo
+ role: redo
。如图所示here
因此,我已经发现可能正在发生的事情是,如果我单击“撤消” -MenuItem,就会调用webContents.undo()。
现在我的问题是,调用此撤消操作后会发生什么?我可以以某种方式注册监听器并自己处理撤消吗?还是最好的做法是不使用'undo'角色而是定义自定义菜单项并自己处理所有事情?
也许有一些关于 Electron Chrome 浏览器如何处理这些撤消事件的规范,以及在何处可以捕获此事件并定义我自己应该在撤消/重做时发生的 Action 的规范。
最佳答案
我认为您应该定义一个自定义菜单项并自己处理。
我不认为您可以注册监听器并在那里处理它,因为 webContents
文档中没有任何事件。
菜单项将是这样的:
{
label: 'Undo',
accelerator: 'CmdOrCtrl+Z',
click: function (menuItem, focusedWin) {
// Undo.
focusedWin.webContents.undo();
// Run some custom code.
}
}