我打开一个Swt对话框。但在我的应用程序之前,加载插件并打开对话框,如果用户单击其他一些后台应用程序,那么在这种情况下焦点不在我新创建的对话框上。这可以注意到因为我的对话框的标题是灰色的,如果我从键盘输入任何内容,它将在其他打开的应用程序中捕获。我的查询是如何在打开后立即将焦点恢复到我的Swt shell /对话框。
谢谢!
您无法强制关注窗口小部件,因为它由操作系统管理,但您可以请求它:
调用下面的方法forceActive
您可以传递对话框shell
public static void forceActive(final Shell shell) {
shell.getDisplay().asyncExec(new Runnable() {
public void run() {
if (shell != null && !shell.isDisposed()) {
shell.forceActive();
}
}
});
}