태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Search

'어도비어도비밪쥬'에 해당되는 글 1건

  1. 2008/11/27 AIR 한글 삭제문제 해결하기 (19)

AIR 한글 삭제문제 해결하기

RIA/AIR 2008/11/27 16:25 Posted by 희희덕

방문자수는 많고, 댓글은 적은 저의 블로그에 반가운 트랙백이 걸렸습니다. 바로 에어레네님께서 AIR에서 한글 삭제 문제를 해결한 방법에 대해 다룬 글이었는데요.
(AIR1.1 이후 한글 입력 버그 수정하기 - 에어레네)

사실 저도, 이와 관련된 버그리포팅도 많이 해봤고, AIR 1.5에서는 이런 문제가 고쳐지지 않을까 기대해 봤는데, 이번 릴리즈에 픽스가 되지 않아서 무척 아쉬웠습니다.

그럼 잠시, AIR1.1이후 발생한 한글 삭제 문제에 대해서 정리하도록 하겠습니다.

사용자 삽입 이미지

기존의 플렉스의 Textinput 컴포넌트에서는 한글 문자열을 백스페이스(←)를 눌러서 삭제하게 되면 깔끔하게 잘 삭제되었는데,

사용자 삽입 이미지

AIR 1.1이후 부터는 유독 한글문자열에서만 백스페이스(←)를 눌러 삭제하게 될경우 항상 가장 마지막 글자의 자음이 남게 되는 문제가 발생하게 되었습니다.

특히 이런 문제는 AIR1.0 에는 없던 문제였는데, AIR1.1이 출시된 이후 발생이 되어서 무척 실망스러웠습니다.

저도 이런 버그를 잡아 볼려고 많이 노력을 했는데, 역시 단무지(단순, 무식, 지....)인 저는 해결방법을 찾질 못하겠더라구요. 결국 고수님들의 따스한 은총을 기다리고 있었는데, 오늘 에어레네님께서 그와 관련된 해결방법을 남겨주셨네요.

에어레네님의 해결방법은, keyup이벤트가 송출될때마다, 벡스페이스가 눌러져 있으면, 이전의 문자열과 비교해서, 한글자가 남게 되면 삭제를 시켜주는 방법입니다.

앗 역시! 멋진 에어레네님 이다! 라고 감탄을 한번 하고,
저는 여기서 살짝 저의 생각을 더해, 한글 삭제 문제를 해결해보았습니다.


AIR1.1 이후버전에서는, 한글 삭제시 TextField의 포커스를 나타내는 EndIndex가 문자열보다 한글자 앞에 위치하는 문제가 있습니다. 따라서, 문자열을 삭제할때, 제일 마지막 문자의 자음이 남는 문제가 발생하게 됩니다.

이런 문제를 해결하기 위해, keydown 이벤트가 송출될때, 사용자가 누른 keycode를 체크해서 백스페이스(←)를 누르고 있을때, EndIndex를 1만큼 더해주면, 이런 문제가 말끔히 해결됩니다.

keydown 이벤트를 사용한 이유는, 사용자가 백스페이스(←) 키를 쭉 누르고 있을경우, keyup 이벤트는 한번 송출된것 밖에 안되기 때문에, 그런경우엔 제일 마지막 글자의 자음이 남게 됩니다.

위의 해결 방법으로 TextInput뿐만 아니라 TextArea에도 적용해서 AIR 1.1 이후 부터 발생한 한글삭제 문제를 해결할 수 잇을것이라고 생각합니다.

위의 컴포넌트는 어떤 용도에서든 사용하셔도 좋습니다.. ^^

무엇보다 근본적으로 이런 한글 입력 문제들이 많은 개발자분들의 버그리포트를 통해  빠른 시일 이내로 해결 될 수 있기를 간절히 희망합니다.

그런의미에서 지금까지 발견된 한글 입력문제들 보러가기!

(앗 그리고, 이 글은 제 블로그에 올리는 100번째 글이네요!! ㅋㅋ 축하축하 ㅋㅋ)

크리에이티브 커먼즈 라이선스
Creative Commons License