Obwohl diese Frage ziemlich alt ist, hat Apple die Unterstützung für Tastatur-spezifische Verknüpfungen in iOS 7 hinzugefügt. Sehen Sie sich die UIKeyCommand Klasse im UIKit Framework für spezielle Unterstützung für Hardware-Tastaturkürzel. Die wichtigsten Schritte für uns sind:
keyCommandWithInput:modifierFlags:action:
für die Klasse UIKeyCommand
, um eine Instanz von UIKeyCommand
für die angegebenen Schlüssel mit Modifikatoren zu erstellen. Beachten Sie, dass alle vom System gehandhabten Tastaturkürzel (wie Command-C zum Kopieren) nicht funktionieren. Sie werden auch eine Aktionsauswahl übergeben, die aufgerufen wird, wenn die Tastenkombination verwendet wird UIKeyCommand
mit Ihren Responder-Objekten zu, indem Sie sie aus der keyCommand
-Eigenschaft des Responder-Objekts zurückgeben. Soweit ich das beurteilen kann, gibt es keine spezielle API für Tastatur-Events oder bestimmte Key-Stroke-Events, wie Sie sie auf dem Desktop bekommen würden. Aber ich glaube, dass Sie in iOS 3.2 viel mehr Zugriff auf die Tastatur haben, und Sie können möglicherweise auf diese Berührungsereignisse zugreifen. Ich bin mir nicht sicher, wie eine externe Tastatur dazu beitragen würde. Es scheint, dass dies etwas ist, an das Apple nicht wirklich gedacht hat, oder entschieden hat, ist nicht wichtig.
Ich bin mir nicht sicher, ob das funktioniert, aber wenn die Top-Level-Ansicht Ihrer Anwendung eine versteckte Textansicht erzeugt, dann ruft " [textView becomeFirstResponder];
" und antwortet dann auf UITextViewTextDidChangeNotification
s Sie könnten die eingegebenen Steuerschlüssel übernehmen im Textfeld. Der Nachteil ist, dass Sie die Tastatur unterdrücken müssen, wenn keine externe Tastatur angeschlossen ist und Sie keine direkte Texteingabe anbieten möchten.