На любой французской клавиатуре (AZERTY) dot char '.' генерируется с Shift + ; в то время как комбинация процента символ «%» генерируется с сдвига + ¯u комбинацииGWT: Неправильные коды клавиш, сгенерированные с помощью французской клавиатуры
Поэтому, когда я типа один из указанных выше комбинаций в текстовой области 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? И есть ли более элегантный способ справиться с этим?