我们目前已经实现了很多 SWT 操作,因为它是一种很好的方式来绑定要添加到菜单栏和工具栏的单个命令,并为这些命令提供键盘快捷键。
现在......我如何在普通的 SWT/JFace 中注册一个动作,而不必将它添加到菜单栏,但仍然可以通过键盘快捷键调用它?
我使用事件来解决这个Display.addFilter
问题KeyDown
。有关示例,请参见此问题。
使用 org.eclipse.ui.bindings 扩展,并添加一个新键。
您分配序列(M1、M2、M3 和 M4 用于表示 Shift、Command 和 Alt 等键,具体取决于系统)。例如,我已将 Alt+D 指定为命令的组合键,因此我在序列字段中输入了“M3+D”。
要使您的键绑定起作用,您需要选择一个schemeId。您可以在绑定扩展名下制作一个。只需为其分配一个ID。然后您需要在“plugin_customization.ini”文件中添加一个条目:
org.eclipse.ui/KEY_CONFIGURATION_ID=your.binding.scheme.id
或者您可以只使用“org.eclipse.ui.defaultAcceleratorConfiguration”作为您的方案 ID,但这包括很多 Eclipse 的关键组合,我认为这将覆盖您的组合。
您可以将contextId字段留空,它表示在这种情况下它将默认为 org.eclipse.ui.contexts.window。
最后,只需指定命令的 ID,就应该设置好!