【问题标题】:GWT -- Reliably get unicode value from keycode in keypressGWT -- 从 keypress 中的 keycode 可靠地获取 unicode 值
【发布时间】:2014-05-15 05:51:04
【问题描述】:

我需要获取 GWT 中特定 keydown 事件的 unicode 值。到目前为止我看到的所有参考资料都建议做类似char c = (char)keyCode 的事情,但这似乎不起作用(不会产生我期望的字符/字符串——尤其是当输入是日语时)

我的代码如下:

DOM.setEventListener(documentElement, new EventListener() {

            public void onBrowserEvent(Event event) {
                int keycode = event.getKeyCode();

                   char c=(char)keyCode;     
                   String insertText = String.valueOf(c);
                   // Next I insert the string into the DOM as a text node.

            }
        });


        DOM.sinkEvents(documentElement, Event.ONKEYDOWN);

我需要确保insertText 的值与用户在敲击键盘或使用 IME 输入编辑器输入日文字符时期望插入的值相对应。

谢谢!

【问题讨论】:

    标签: gwt


    【解决方案1】:

    KeyDown 和 KeyUp 是关于键盘上按下的键。如果您对这些键产生的更高级的事件感兴趣(并且可能将它们组合起来,例如ShiftA 产生一个大写的A),那么请听 KeyPress 事件。

    【讨论】:

    • 这似乎适用于常规键盘事件。但是,谷歌输入法在使用时不会产生按键事件。它似乎只产生 keydown 和 keyup 事件。知道如何解决这个问题吗?我需要我的用户能够使用 IME,例如:google.com/ime
    【解决方案2】:

    尝试使用KeyCodeEvent#getNativeKeyCode() 获取本机密钥代码。这些关键代码在KeyCodes 类中枚举。

    char ch = (char)keyDownEvent.getNativeKeyCode()
    

    请查看帖子Mnemonics in GWT 在相同的上下文中被问到。

    【讨论】:

      猜你喜欢
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多