5

UIKeyCommandビュー コントローラーからインスタンスを提供することで、iOS アプリでキーボード ショートカットをサポートしています。

以下はチャームのように機能し、 を押すたびに提供されたセレクターが呼び出されますe

- (BOOL)canBecomeFirstResponder {
    return YES;
}

- (NSArray *)keyCommands {
    return @[
        [UIKeyCommand keyCommandWithInput:@"e" modifierFlags:0 action:@selector(foo:)]];
    ];
}

ただし、キーコマンドを⌘</kbd>+e, or

[UIKeyCommand keyCommandWithInput:@"e" modifierFlags:UIKeyModifierCommand action:@selector(foo:)]

これはまだ機能します。初めて押すと動かない⌘</kbd>+e, but it will work like a charm after that. Why does that happen and how can I fix it?

4

1 に答える 1

13

これは既知のバグです。回避策として、空の文字列と何もしないセレクターを渡すことで、Command キーのみに応答するように登録できます。

[UIKeyCommand keyCommandWithInput:@""
                    modifierFlags:UIKeyModifierCommand 
                           action:@selector(doNothing:)]

その後、ユーザーがヒットするまでに⌘</kbd>+e, it'll be the second invocation and it'll register fine.

バグの詳細については、ここ OpenRadar を参照してください。2015 年 1 月 27 日に提出され、2 月 24 日に重複としてマークされました。

于 2015-03-02T07:59:58.260 に答える