Wie bekomme ich den Tastaturstatus in Objective-C, ohne auf NSEvent zu verweisen?

8

Ist es möglich, den Tastaturstatus in Objective-C zu erhalten, ohne auf NSEvent ? zu verweisen?

Im Allgemeinen kann ich NSResponder Methoden wie -[NSResponder flagsChanged:] nicht verwenden, aber ich muss wissen, ob die Befehlstaste momentan gedrückt ist.

    
shpoont 13.05.2011, 14:46
quelle

1 Antwort

16

Ich frage mich immer noch, warum du NSEvent nicht benutzen kannst, aber ich werde die Frage trotzdem beantworten. Vielleicht erstellen Sie ein "Befehlszeilentool" und sind nur mit Foundation verbunden? Sie müssen mindestens ein weiteres Framework hinzufügen. Wenn Sie mit AppKit verlinken möchten, können Sie (wie ich in den Kommentaren erwähnte) +[NSEvent modifierFlags] ; Dies ist eine Klassenmethode für NSEvent . Sie können sie also überall verwenden, ohne auf ein einzelnes Ereignis zugreifen zu müssen, um den aktuellen Status der Zusatztasten als Bitmaske abzurufen. Die Dokumentation erläutert die Bedeutung der Bitmaske .

%Vor%

Sie können diese Informationen auch über Quartz Event Services . In diesem Fall müssen Sie das ApplicationServices-Framework * einbinden. Die CGEventSource Funktionen erhalten Sie die selbe Bitmaske erhalten Sie von NSEvent :

%Vor%

* Dies ist bereits enthalten, wenn Sie tatsächlich eine Cocoa-App schreiben - sie ist Teil von Quartz.

    
Josh Caswell 14.05.2011, 02:13
quelle

Tags und Links