我正在开发一个Eclipse RCP应用程序,当我从同一视图的工具栏启动一个动作时,我想从视图中的嵌入式编辑器(实际上只是一个奇特的文本字段)中窃取焦点。该操作适用于命令。当视图本身失去焦点时,此编辑器/文本字段会自动失去焦点。那么如何从视角中窃取焦点呢?
答案 0 :(得分:0)
我不确定这是否是您正在寻找的,但我们在关闭编辑器或关闭应用程序以“强制完成”用户的优秀UI字段编辑时使用这样的代码,以便验证和模型更新发生在脏状态被检查之前(这样我们就不会默默地“丢失”用户的未完成编辑)。
final IWorkbench workbench = PlatformUI.getWorkbench();
if (workbench == null)
return;
final Display display = workbench.getDisplay();
if (display == null)
return;
final Control focusControl = display.getFocusControl();
if (focusControl == null)
return;
focusControl.notifyListeners(SWT.FocusOut, null);
我不知道这是“最佳”还是“适当”的方式,但它起作用,至少在3.2中。