web-dev-qa-db-fra.com

Où puis-je trouver une liste de codes clés à utiliser avec la classe NSEvent de Cocoa?

Je recherche une liste complète des codes clés disponibles qui peuvent être utilisés avec la classe NSEvent de Cocoa. La classe NSEvent a une propriété keyCode, qui est définie comme unsigned short. Le code suivant, lorsqu'il est placé dans un objet d'interface utilisateur approprié, fera écho aux codes de touches lorsqu'ils sont enfoncés:

- (void)keyDown:(NSEvent *)theEvent
{
    NSLog(@"%d", [theEvent keyCode]);
}

À partir de ce code, je peux facilement voir quels codes correspondent à certaines touches, mais j'aimerais trouver un document officiel quelque part qui les répertorie toutes. Je m'attendais à ce que Apple ait un fichier d'en-tête quelque part qui ressemblait à ceci:

enum {
    ...
    NSKeyCodeLeftArrow = 123,
    NSKeyCodeRightArrow = 124,
    ...
};

Mais s'il y en a un, je ne l'ai pas encore trouvé.

46
e.James

Autant que je sache, il n'y a pas d'énumération ou de liste de codes clés. Cependant, pour obtenir un comportement similaire, vous pouvez appeler interprétKeyEvents: dans keyDown: qui appellera les méthodes d'action appropriées, qui sont toutes documentées dans NSResponder (par exemple moveLeft: , - insertTab: , etc.)

23
Saurabh Sharan

Ici vous allez. C'est une carte de tous les codes-touches virtuels sur la disposition de clavier étendue des États-Unis, de l'ancien Macintosh intérieur: Texte. La plupart des codes de touches sont encore actuellement, même si je soupçonne que les tout derniers claviers Apple) - ceux avec des touches multimédias - ont peut-être changé quelques-unes des touches de fonction.

Remarque: les claviers ISO et non étendus peuvent avoir des codes de touche différents pour certaines touches. Si vous avez un tel clavier, essayez Codes clés de Peter Maurer application. Son site est en panne, donc voici ma copie .

29
Peter Hosey

Pour inclure HIToolbox/Events.h (comme mentionné dans la réponse de berrange) dans XCode 4, il vous suffit d'aller dans Link Binaries with Libraries et d'ajouter le framework Carbon (qui inclut HIToolbox), puis d'importer l'en-tête Carbon principal dans le fichier où vous vous trouvez vérification des keyCodes.

#import <Carbon/Carbon.h>

Il m'a fallu une seconde pour comprendre que je ne pouvais pas importer directement HIToolbox/Events.h, alors j'ai pensé publier ceci au cas où cela aiderait quelqu'un.

12
Angus Forbes

Selon ce sujet de forum, les constantes sont disponibles dans HIToolbox/Events.h

http://forums.macrumors.com/showthread.php?t=780577

Ils ont également copié et collé l'ensemble des constantes dans le forum. Sinon, l'en-tête est disponible ici:

/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h
6
berrange

Pour Swift, importez Carbon.HIToolbox.Events puis utilisez directement les constantes:

import Carbon.HIToolbox.Events

let keyCode = kVK_ANSI_A

Pour une liste de tous les codes, accédez à la définition de Carbon.HIToolbox.Events:

screenshot

0
Hejazi