Swt shell / dialog强制焦点

问题描述 投票:0回答:1

我打开一个Swt对话框。但在我的应用程序之前,加载插件并打开对话框,如果用户单击其他一些后台应用程序,那么在这种情况下焦点不在我新创建的对话框上。这可以注意到因为我的对话框的标题是灰色的,如果我从键盘输入任何内容,它将在其他打开的应用程序中捕获。我的查询是如何在打开后立即将焦点恢复到我的Swt shell /对话框。

谢谢!

eclipse shell swt rcp
1个回答
2
投票

您无法强制关注窗口小部件,因为它由操作系统管理,但您可以请求它:

调用下面的方法forceActive您可以传递对话框shell

public static void forceActive(final Shell shell) {
    shell.getDisplay().asyncExec(new Runnable() {
        public void run() {
            if (shell != null && !shell.isDisposed()) {
                shell.forceActive();
            }
        }
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.