Swt shell/dialog 强制聚焦
Swt shell/dialog force focus
我正在打开一个 Swt 对话框。但是在我的应用程序加载插件并打开对话框之前,如果用户单击其他一些后台应用程序,那么在这种情况下焦点不在我新创建的对话框上。可以注意到这一点,因为我的对话框的 header 是灰色的,如果我从键盘输入任何内容,它会被其他打开的应用程序捕获。我的问题是如何在打开 Swt shell/dialog 后立即将焦点返回到 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();
}
}
});
}
我正在打开一个 Swt 对话框。但是在我的应用程序加载插件并打开对话框之前,如果用户单击其他一些后台应用程序,那么在这种情况下焦点不在我新创建的对话框上。可以注意到这一点,因为我的对话框的 header 是灰色的,如果我从键盘输入任何内容,它会被其他打开的应用程序捕获。我的问题是如何在打开 Swt shell/dialog 后立即将焦点返回到 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();
}
}
});
}