kVK_ANSI_1
などのキーコードをsetKeyEquivalent
に渡すことができる文字列に変換するにはどうすればよいですか(kVK_ANSI_1
の場合、@"1"
を取得します)。とにかくキーを指定する2つの方法は何故ですか?ただ一つの表現を持つほうが意味があります。キーコードをキーと同等の文字列に変換する
5
A
答えて
5
後、私は次の関数を使用して終了さはhereを見つけました。
/* Returns string representation of key, if it is printable.
* Ownership follows the Create Rule; that is, it is the caller's
* responsibility to release the returned object. */
CFStringRef createStringForKey(CGKeyCode keyCode)
{
TISInputSourceRef currentKeyboard = TISCopyCurrentKeyboardInputSource();
CFDataRef layoutData =
TISGetInputSourceProperty(currentKeyboard,
kTISPropertyUnicodeKeyLayoutData);
const UCKeyboardLayout *keyboardLayout =
(const UCKeyboardLayout *)CFDataGetBytePtr(layoutData);
UInt32 keysDown = 0;
UniChar chars[4];
UniCharCount realLength;
UCKeyTranslate(keyboardLayout,
keyCode,
kUCKeyActionDisplay,
0,
LMGetKbdType(),
kUCKeyTranslateNoDeadKeysBit,
&keysDown,
sizeof(chars)/sizeof(chars[0]),
&realLength,
chars);
CFRelease(currentKeyboard);
return CFStringCreateWithCharacters(kCFAllocatorDefault, chars, 1);
}
+0
素晴らしいと便利です(これは遅くても)。ありがとう – Terminality
2
関連する問題
- 1. Xpath:数値を同等の文字列に変換する
- 2. SWT:キーコードを文字列に変換する
- 3. キーSwiftの非英数字の文字列と同等です。
- 4. 文字列をキーに変換する
- 5. uint8_t * data_charsと長さを同等の文字列に変換する
- 6. ローマ数字を含む文字列は、同等の整数に変換し
- 7. 特殊文字を汎用同等物に変換する(PHP)
- 8. JSON文字列をクロスプラットフォームに変換するときの同じJSON文字列
- 9. 文字列を等価のEnum値に変換する
- 10. Cの文字列と文字列ポインタを比較すると同等です
- 11. 特殊文字をJavaの同等の10進数に変換
- 12. 文字列を別のオブジェクトと同じ型に変換する
- 13. strpslit文字配列とデータフレームに同時に変換する
- 14. 文字列をキーに変換する(逆の場合)
- 15. 文字列と文字列のリストを文字列に変換する方法
- 16. 文字列と文字列をgettextに変換するPO
- 17. Uriを文字列と文字列に変換する
- 18. ハッシュテーブルのキーを文字列のリストに変換します
- 19. 文字列と等しいJavaScript暗黙変換
- 20. AndroidでIntと同じ文字列を変換する
- 21. 文字列をJavaの文字列配列に変換する
- 22. ヘブライ文字を等価な数字に変換する
- 23. jsonの文字列をJavaの文字列に変換する
- 24. Linqクエリ式をメソッド構文に変換する同等の
- 25. C - 文字列(文)を文字列リストに変換する
- 26. AndroidのMoshi Kotlin - ENUMをMutableMapキーとして文字列に変換するときに文字列に変換する
- 27. CGO:LPCWSTRと文字列を変換する
- 28. 文字列を一連の文字列に変換する
- 29. Pythonの文字列リストを文字列に変換する
- 30. Haskellの文字列を文字列に変換する
'kVK_ANSI_1'は、キーボード上の位置を表すので、「1」(文字が入力を表すのに対し、キーを指定するには2つの方法が、(「1」キーはANSI標準のUSキーボードの上に置かれている場所)がありますあなたのキーボードレイアウトに応じて 'kVK_ANSI_1'から来るかもしれません)。 – jlstrecker