SWT外壳/对话力重点



我正在打开一个SWT对话框。但是在我的应用程序之前,加载插件并打开对话框,如果用户单击其他背景应用程序,则在这种情况下,焦点不在我新创建的对话框上。可以注意到这一点是因为我的对话框的标题被亮了,如果我从键盘上输入任何内容,则将其在其他打开的应用程序中捕获。我的疑问是,一旦打开,我如何才能将焦点恢复到我的SWT外壳/对话框中。

谢谢!

您不能强制窗口小额焦点,因为它由OS管理,但是您可以请求它:

在下面调用方法forceActive您可以通过对话框shell

public static void forceActive(final Shell shell) {
    shell.getDisplay().asyncExec(new Runnable() {
        public void run() {
            if (shell != null && !shell.isDisposed()) {
                shell.forceActive();
            }
        }
    });
}

最新更新