3

質問

アプリケーションが受け取るすべてのキーボード入力をキャッチ/プレビューしたいと思います。

外部キーボードからの入力だけをキャッチできれば十分です。

UITextViewTextDidChangeNotificationandの通知オブザーバーを登録するなどのソリューションの例を見つけましたUITextFieldTextDidChangeNotificationが、これにはTextVieworTextFieldが現在のファーストレスポンダーである必要があるため、すべてのニーズを捉えることはできません。

この例は、ビュー全体がリストとナビゲーション ボタンであるリストをフィルタリングするためにスキャンを使用していることです。

アプリケーションが受け取るすべてのキー入力をプレビューできるオブザーバーを登録する方法はありますか?

バックグラウンド:

バーコードをスキャンして、いくつかの異なるビューでオブジェクトを識別する iPhone アプリケーションがあります。

現在、カメラ (zbar ライブラリを使用) または MFI 認定のバーコード スキャナーでバーコードをスキャンしています。より多くのデバイス (iPad など) をサポートするために、バーコードをキャプチャする他の方法を調査しています。

注目しているデバイス クラスの 1 つは、HID キーボードとして識別する Bluetooth スキャナーです。さまざまな製品やメーカーで使用できるため、これは大きな追加になるでしょう.

そうするには

4

2 に答える 2

2

iOS 7 以降の別のオプションは、現在のビュー コントローラーで keyCommands メソッドを宣言することです。特殊なキーの組み合わせをトラップできます。欠点は、探しているものを明示的に宣言する必要があることです。

ここで、HID モードで接続されたスキャナーから 2D バーコードから特殊文字を取得することについて、私自身の質問に答えました。

于 2014-08-06T20:26:08.707 に答える
1

IOKit は「ホワイトリスト フレームワーク」であるため、IOHID** 関数の使用は AppStore のレビュアーによって拒否されないようです ( Apple は IOKit フレームワークを使用する Mac OS アプリを拒否しますか? )

したがって、このトピックIOHIDEventSystemClientScheduleWithRunLoop with EXC_BAD_ACCESSのコールバック関数を実際に使用してみることができます。私はこのコードを使用しましたが、アプリがバックグラウンド (特別なバックグラウンド モードを設定するだけ) であっても機能し、すべてのシステム タッチおよびキーボード イベントをキャプチャします。

于 2013-10-11T11:48:07.897 に答える