在用户第一次单击控件之前,尝试在 WebView 上执行 requestFocus() 不起作用。
我知道这一定是可能的,因为 htmlEditor 可以以这种方式集中注意力(我怀疑它基于 contenteditable WebView)。
我正在使用带有“contenteditable”的 webview 编写我自己的专用 htmlEditor,我真的希望能够像使用标准 htmlEditor 一样聚焦它。
我相信这一定是 Javafx 的问题,我已经将它提交给了 Jira,但我想知道是否有人能想到一个解决方法。
更新:jira 中的问题编号:RT-21695
简短的演示代码:
/* Demo webview */
public class WebViewConteneditableDemo extends Application {
String initialEditview = "<html><head>"
+ "</head><body contenteditable='true'>"
+"</body></html>";
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Webview focus demo");
final WebView editor = new WebView();
Button btn = new Button();
btn.setText("Test Webview focus");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
editor.requestFocus();
}
});
BorderPane root = new BorderPane();
root.setTop(btn);
root.setCenter(editor);
editor.getEngine().loadContent(initialEditview);
primaryStage.setScene(new Scene(root, 500, 450));
primaryStage.show();
}
}