2014-07-26 63 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