2010-09-07 2 views

Répondre

2

Selon un commentaire sur this blog post, vous pouvez utiliser CGEventCreate() et CGEventGetFlags().

CGEventRef event = CGEventCreate(NULL /*default event source*/); 
CGEventFlags mods = CGEventGetFlags(event); 
if (mods & kCGEventFlagMaskShift) 
    NSLog(@"Shift key is being pressed"); 

Les drapeaux modificateurs renvoyés par CGEventGetFlags() (CGEventFlags) sont les mêmes que ceux NSEvent.

2

GetCurrentKeyModifiers(). C'est une fonction C mais elle est disponible dans les applications Cocoa (elle fait partie du framework Carbon, mais est toujours disponible sur les systèmes 64 bits, IIRC). Notez que les indicateurs qu'elle utilise ne sont pas égaux aux drapeaux Cocoa. changer de manière appropriée.

+0

Est-il disponible uniquement sur les systèmes 64 bits? J'essaie de cibler les systèmes 32 bits exécutant 10.5. –

+0

Alexsander Akers: Non. Il est disponible depuis l'époque de CarbonLib sur Mac OS, y compris sur tous les systèmes 32 bits entre maintenant et maintenant; il a mentionné la compatibilité 64 bits parce que beaucoup de gens, en voyant une fonction Carbon suggérée, vont bondir et crier "Carbon n'est pas disponible en 64 bits!". –

Questions connexes