处理按键时遇到问题。我的插件必须记录用户的每个键盘操作。所以,我创建了处理程序获胜方法:
private Display display;
public ActionsRecorder() {
display = Display.getCurrent();
if (display == null) {
display = Display.getDefault();
}
}
public void handleKeyPress() throws ExecutionException {
display.addFilter(SWT.KeyDown, this);
}
@Override
public void handleEvent(Event event) {
System.out.println(event.keyCode);
}
因此,如果我按 Ctrl + B ,两个印刷机都会正确处理。但是,如果按热键例如 Ctrl + A ,则只处理 Ctrl 按钮。
我认为另一个默认处理程序捕获事件并将event.doit
值分配给false
。
如何解决?是否有其他方法可以创建全局(在ide窗口中)记录器?
UPD :Baz,谢谢你的帮助。但我的问题是eclipse(luna)不会调用.handleEvent(e)方法,如果按下热键。 在插件生命周期中添加侦听器的位置?