GWT:使用法语键盘生成错误的密钥代码

时间:2010-04-27 08:18:25

标签: gwt keyboard

在任何法语键盘(AZERTY)上,使用 Shift + 生成点字符'。; 使用 Shift + ù 组合生成%char'%'时的组合

因此,当我在GWT文本区域中键入上述组合之一来编写'。'时或'%',为这些事件生成的关键代码在前一种情况下为KEY_DELETE,在后一种情况下为KEY_LEFT

TextArea txtArea = new TextArea();
txtArea.addKeyPressHandler(new KeyPressHandler() {
            public void onKeyPress(KeyPressEvent event) {                
                switch (charCode) {
                    case KeyCodes.KEY_LEFT: { // key code 37
                        System.out.write("KEY LEFT");    
                        break;
                    }
                    case KeyCodes.KEY_DELETE: {   // key code 46                   
                         System.out.write("DELETE");
                         break;
                    }
                }

解决方法:获取charCode并进行字符匹配:

charCode = event.getCharCode();
if (charCode == '.') {...}
else if (charCode == '%') {...} 

这是一个GWT错误吗?是否有一种更优雅的方式来处理这个问题?

1 个答案:

答案 0 :(得分:2)

这似乎不是特定于GWT的错误 - 请参阅Issue 3753以及那里的所有参考资料,以全面了解问题。基本上,不同的浏览器如何处理关键事件是一个巨大的混乱 - GWT团队似乎正在努力解决这个问题,GWT 2.1应该包含全面的修复(无论什么时候出现 - 同时,它可能值得一试问题的状态并尝试SVN版本。)