2014-07-26 3 views
1

내가 실제로 눌러 진 키가 Mac 키보드에서 어디에 있는지 감지하고 싶습니다. 키 코드를 보면 숯 등이 표시되지만 위치는 언어/키보드 레이아웃에 따라 다릅니다. 키에 행 인덱스와 같은 것이 필요할 것입니다.OS X 키 코드를 키 위치로 변환 하시겠습니까? (시스템 키보드 언어/레이아웃과 상관없이)

이 코드를 사용하여 키보드 레이아웃 언어로 볼 수 있어요

:

TISInputSourceRef source = TISCopyCurrentKeyboardInputSource(); 
NSLog(@"localized name: %@", TISGetInputSourceProperty(source, kTISPropertyLocalizedName)); 

나는 각 언어에 대한 건물의 키 코드 위치 사전을 통해 위치를 매핑 할 수있는에서,하지만 그 많은 작업을 할 수 있습니다 대부분의 키보드를 덮는다.

바로 가기에 대한 아이디어가 있습니까?

답변

3

키 코드가 잘못되었습니다. OS X에서 가상 키 코드는 키 위치와 일치합니다. 아니요은 키보드 레이아웃에 의해 생성 될 문자를 나타냅니다.

예를 들어 키 코드 0은 kVK_ANSI_A입니다. 이것이 의미하는 것은 이 아니고은 "A"문자를 생성하는 키입니다. 그것은 "A"키가 ANSI 표준 키보드에있는 위치에있는 키임을 의미합니다. 그것은 가운데에있는 문자 키 중 가장 왼쪽에있는 키입니다.

키 코드 0이 수정 자없이 프랑스어 키보드 레이아웃을 통해 번역되면 "q"문자가 생성됩니다.

+0

아, 알겠습니다! 그만한 노력! 감사 – Ian