GWT:文本框在Ipad上不显示光标

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

我正在尝试实现一个文本框,该文本框可以显示GWT的分数。因此,我有一个Canvas,可以绘制我想要的东西并接收KeyEvent和MouseEvent。

但是在Ipad(Safarie和Chrome)上,软件键盘没有显示,因此我创建了一个Composite并将Canvas与Textbox结合起来,在画布上的每个键或鼠标事件发生后,焦点便得到了聚焦。

但是软键盘不会每次都显示,所以我尝试了一下,可以看到,文本框似乎获得了焦点(它变成了蓝色的边界),但并不总是显示光标。

这不会在我的笔记本上发生。

聚焦和显示光标之间有什么区别吗?

我尝试过:

  • 设置光标位置
  • 设置文本框的文本。

任何帮助,Christoph

    public void setFocus(boolean b) {
    //  if (hasFocus) {
        Scheduler.get().scheduleDeferred(new ScheduledCommand() {
            public void execute () {
                t.setFocus(b);
            }
           });
        Scheduler.get().scheduleDeferred(new ScheduledCommand() {
            public void execute () {
                box.setFocus(true);
                box.setText("x");
                box.setCursorPos(0);
//              box.setVisible(false);
//              box.setVisible(true);
            }
           });

  //        t.setFocus(b);
//      box.setFocus(b);

//      }
    }

ipad gwt textbox focus
1个回答
0
投票

iOS浏览器不允许以编程方式设置焦点,除非直接响应用户交互(即触摸)。我相信原因是为了防止网站无缘无故地打开虚拟键盘。

缺点是,它会出于正当理由使用setFocus()网站。您不能在deferred命令中调用setFocus(),因为这不会算作对用户交互的direct响应。

(更确切地说,您can用延迟的命令调用setFocus(),但是您发现的效果不理想。)

© www.soinside.com 2019 - 2024. All rights reserved.