新しいUIKeyCommand
クラスとUIResponder
チェーンを使用して、iOS 7のBluetoothキーボードでキーボードショートカットを処理する方法が100%サポートされています。ここI did blog about this、しかし要点です:
どこかレスポンダチェーンのUIKeyCommand
オブジェクトの配列を返しますkeyCommands
ための方法を追加:⌘Fは(テキスト入力ビューに)押された場合、その後
- (NSArray *)keyCommands {
UIKeyCommand *commandF = [UIKeyCommand keyCommandWithInput:@"f" modifierFlags:UIKeyModifierCommand action:@selector(handleCommandF:)];
return @[commandF];
}
をResponderチェーンはその方法を探すでしょう。handleCommandF
複数の定義がある場合は、最も厳密にスコープされた定義を使用します(たとえば、View自体がViewControllerよりも優先されます)。
これは、入力(UITextField
またはUITextView
など)が最初のレスポンダである場合にのみ機能することに注意してください。あなたのアプリに「グローバル」ショートカットが必要な場合は、UITextField
を非表示にしてそれに焦点を当てるトリックを行うことができます。
最後の行に[](角かっこ)がありません。 – Klaas
ありがとう! (SOのパディング) – swilliams
UITextFieldは必ずしも必要ではありません。 canBecomeFirstResponder:に対してYESを返すカスタムUIViewサブクラスを作成し、そのカスタムビューをビュー階層に置き、最初のレスポンダとして設定することができます。 – lucius