Ich verwende CGEventCreateKeyboardEvent
und muss wissen, welche CGKeyCode
Werte verwendet werden sollen.
Insbesondere bin ich nach dem Schlüsselcode für den CommandSchlüssel. Die Dokumente enthalten Beispiele für andere Schlüssel: zis 6
, shiftis 56
.
Muss irgendwo eine Liste der virtuellen Mac-Schlüsselcodes vorhanden sein?
Antworten:
Die kanonischere Referenz ist in
<HIToolbox/Events.h>
:In neueren Versionen von MacOS wurde "Events.h" hierher verschoben:
quelle
<Carbon/Carbon.h>
diekVK_*
Symbole angezeigt werden , wenn Sie (oder diesen Header direkt) einschließen . In Ihrem Beispiel können Sie alsokVK_Command
direkt verwenden.#include <Carbon/Carbon.h>
. Sie können dann einfach eingebenkVK_ANSI_A
.import Carbon.HIToolbox
um auf diese Konstanten zuzugreifen.Unten finden Sie eine Liste der allgemeinen Schlüsselcodes zur schnellen Referenz
Events.h
.Wenn Sie diese Schlüsselcodes in einer Anwendung verwenden müssen, sollten Sie das Carbon-Framework einschließen:
Ziel c:
#include <Carbon/Carbon.h>
Schnell:
import Carbon.HIToolbox
Sie können die
kVK_ANSI_A
Konstanten dann direkt verwenden.WARNUNG
Die Tastenkonstanten verweisen auf physische Tasten auf der Tastatur. Ihre Ausgabe ändert sich, wenn der Schreiber ein anderes Tastaturlayout verwendet. Die Buchstaben in den Konstanten entsprechen nur dem US QWERTY-Tastaturlayout.
Zum Beispiel die linke Ringfingertaste auf der Homerow:
QWERTY keyboard layout
> s>kVK_ANSI_S
>"s"
Dvorak keyboard layout
> o>kVK_ANSI_S
>"o"
Strategien zur layoutunabhängigen Konvertierung von Schlüsselcode in Zeichenfolge und umgekehrt werden hier diskutiert:
Wie konvertiere ich ASCII-Zeichen in CGKeyCode?
Von
Events.h
:Macintosh Toolbox Essentials veranschaulicht die physischen Speicherorte dieser virtuellen Schlüsselcodes für das Apple Extended Keyboard II in
Figure 2-10
:quelle
NSSystemDefined
Tastaturereignisse vom Typ mit verschiedenen Tastencodes und Untertypen wieNX_POWER_KEY
undNX_SUBTYPE_POWER_KEY
.PowerKey
Weitere Informationen finden Sie in der Quelle meiner App auf Github: github.com/pkamb/PowerKey/blob/master/PowerKey/…Hier eine Antwort gefunden .
Damit:
quelle
Hier sind alle Schlüsselcodes.
http://web.archive.org/web/20100501161453/http://www.classicteck.com/rbarticles/mackeyboard.php
Oder es gibt eine App im Mac App Store mit dem Namen "Key Codes". Laden Sie es herunter, um die Tastencodes der Tasten anzuzeigen, die Sie drücken.
Schlüsselcodes:
https://itunes.apple.com/tr/app/key-codes/id414568915?l=tr&mt=12
quelle
Zusätzlich zu den in anderen Antworten angegebenen Schlüsselcodes gibt es in den neueren APIs, die in macOS Sierra eingeführt wurden, auch "Verwendungs-IDs", die für die Neuzuordnung von Schlüsseln verwendet werden:
quelle
NSEvent.keyCode
.Hier sind einige vorgefertigte Objective-C-Wörterbücher, wenn jemand Ansi-Zeichen eingeben möchte:
quelle
@(42)
reduziert den Lärm vonnumberWithInteger: 42
. Eine solche Nachschlagetabelle ist jedoch keine gute Idee, da andere Tastaturlayouts nicht übereinstimmen.