2017-12-20 10 views
0

私は、Swiftで書かれた電卓アプリを持っていて、カスタムキーボードショートカットと完全に互換性があります。私は、次のカスタムショートカットを割り当てることを試みるたび 私は、しかし、ユーザーはCコマンド+を押したときにメソッドを呼び出ししようとしている、それだけでは動作しません:私のアプリ(スウィフト)でコマンドCを検出するには?

UIKeyCommand(input: "c", modifierFlags: [.command], action: #selector(commandCAction)) 

commandCActionメソッドが呼び出されることはありません他のショートカットとは異なります。これはアップルがこのショートカットを予約しているためだと思う。ユーザーが物理キーボード上でCommand + Cを押したときに検出するために使用できるオブザーバまたは方法はありますか?

答えて

0

私はいくつかの理由で、これは私のシミュレータ上では動作しません、問題を見つけました:私は、物理デバイス上にしようとしたとき

UIKeyCommand(input: "c", modifierFlags: [.command], action: #selector(commandCAction)) 

しかし、それは働きました!それは私と同じ問題を抱えている人のための解決策です。

1

UIKeyCommandのドキュメントには、「既知のシステムイベント(切り取り、コピー、貼り付けなど)にマップされるキーコマンドは、自動的に適切なレスポンダメソッドにルーティングされます」と記載されています。

コマンドをインターセプトし、独自のcopy:を実装するUI要素をサブクラス化するのが最善の方法です。

関連する問題