2010-04-27 3 views
3

프랑스어 키보드 (AZERTY)에서 문자 '.'으로 생성됩니다. Shift + ; 조합 퍼센트 문자 '%'시프트 + ù 조합으로 생성되는 동안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의 버그를? 그리고 이것을 처리하는 더 우아한 방법이 있습니까?

답변

2

GWT 관련 버그가 아닌 것 같습니다.이 문제에 대한 포괄적 인 내용은 Issue 3753 및 모든 참고 자료를 참조하십시오. 기본적으로 다른 브라우저가 주요 이벤트를 처리하는 방법에 대한 엄청난 혼란이 있습니다. GWT 팀은이를 고치기 위해 노력하고있는 것으로 보이며 GWT 2.1에 포괄적 인 수정 사항이 포함되어야합니다 (그 때마다 체크 아웃 할 가치가 있습니다. 문제의 상태 및 SVN 버전 시도).

관련 문제