使用以下代码,我能够捕获eclipse中当前活动编辑器(First.java)中的所有关键事件
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorPart editor = page.getActiveEditor();
((StyledText)editor.getAdapter(org.eclipse.swt.widgets.Control.class)).addKeyListener(new KeyListener() {
//code here
});
但是一旦我打开(激活)另一个编辑器(Second.java),就不会捕获关键事件。
如何在我在workbenchPage中打开的所有编辑器上捕获关键事件。
答案 0 :(得分:1)
您可以使用IPartListener
侦听对活动声部的更改,以便在声部变化时添加和删除您的侦听器:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
page.addPartListener(listener);
告知听众有关打开,关闭,激活和停用的部件。部分可能是视图或编辑。
注意:并非所有编辑都使用StyledText
,因此您需要检查getAdapter
返回的对象的类型。