2

我有一个奇怪的问题让我感到困惑。我使用以下代码在 Eclipse 的编辑器中打开一个文件:

    final IWorkbench wb = PlatformUI.getWorkbench();
    IWorkbenchWindow window = wb.getActiveWorkbenchWindow();
    final IWorkbenchPage page = window.getActivePage();

    wb.getProgressService().runInUI( window, new IRunnableWithProgress() {

        @Override
        public void run( IProgressMonitor monitor ) throws InvocationTargetException, InterruptedException {

            if( null == monitor ) {
                monitor = new NullProgressMonitor();
            }

            try {
                monitor.beginTask( "Append to file", 2 );

                ITextEditor editor = (ITextEditor) IDE.openEditor( page, file );

                monitor.worked( 1 );

                // TODO Bug: Editor is active, it has the focus but doesn't process keypress events :-(
            } catch( Exception e ) {
                throw new InvocationTargetException( e, "Error appending to file " + file );
            } finally {
                monitor.done();
            }
        }
    }, null );

我从互联网上的几个来源收集了一些零碎的东西。

奇怪的问题是编辑器似乎有焦点(标签突出显示,我看到它周围的蓝色边框)

但是在编辑器中没有可见的光标,当我输入一些东西时,什么也没有发生(在工作台的其他地方也没有发生任何事情)。

我也尝试过ITextEditor editor = (ITextEditor) IDE.openEditor( page, file, true );,但结果相同。

当我单击选项卡时,会出现光标,我可以使用编辑器。但是,按下F12没有效果。

和想法?

4

1 回答 1

1

尝试page.activate(editor);(即使它应该已经处于活动状态)。

于 2017-01-25T09:57:26.313 回答