2010-06-16 5 views
1

J'écris un plugin pour une application. Je ne peux pas dériver de NSApplication car il s'agit d'une application tierce. Je peux obtenir le rappel dans mon plugin quand une touche est pressée. Mais je ne saurai pas quelle touche est pressée. Alors, est-ce qu'il y a un appel dans Cocoa pour trouver la dernière touche pressée quand je reçois le rappel? Je n'ai que l'objet NSView.Comment obtenir la dernière touche sur Mac?

Toutes les idées m'aideront beaucoup.

Merci,

Dheeraj.

Répondre

3

Quelques pensées:

  1. Utilisez [NSApp currentEvent]. Je sais que vous ne pensez pas que vous avez une instance NSApplication, mais vous devriez essayer cela. Cela peut fonctionner.
  2. Effectuez une surveillance d'événement dans votre plug-in (CGEventTap, NSEvent moniteur local, etc.) et enregistrez chaque fois que vous voyez un événement de pression de touche.
+0

Merci pour vos pensées Dave DeLong. J'ai essayé CGEventTap mais cela nécessite que l'utilisateur vérifie l'indicateur Activer l'accès pour les périphériques fonctionnels dans les Préférences Système. Je vais essayer [NSApp currentEvent] et vous le faire savoir. – Dheeraj

+0

Merci Dave DeLong. [NSApp currentEvent] fonctionne correctement. – Dheeraj

Questions connexes