4

私のアプリでは、使用した多数のテキスト フィールドがある顧客情報フォームを使用しています。ユーザーが任意のフィールドを編集するときに、ビュー全体を上に移動して、編集中のテキスト フィールドが iPad の内部に収まらないようにする必要があります。キーボードとこれは正常に機能しています。ここで、クライアントは、このフォームに入力するために外部 Bluetooth キーボードを使用したいと考えています。この外部キーボードが iPad に接続されると、アプリでテキスト フィールドを編集するときに、外部が接続されているため内部キーボードが表示されません。この場合、ビュー全体がページ上にある必要があり、上に移動する必要はありません。しかし、テキストフィールドを編集すると、画面に内部キーボードが表示されずにまだ上に移動し、ビュー全体が上に移動するため、画面の半分が空白のままになります。

このために、内部キーボードの表示/非表示通知を有効にするなどのいくつかの方法を試しましたが、これらの通知は外部キーボードが接続されていない場合にのみ呼び出され、これは役に立ちません。また、ExternalAccessoryフレームワークで試しましたが、Bluetooth接続キーボードを検出しません.EADemoで外部キーボードを検出しようとしましたが、外部キーボードを検出しませんでしたが、ドックを介して接続されたクレジットカードスワイパーを検出しました.

ここにいる誰かがこの機能を経験したことがある場合、またはこれに関連することを知っている場合は、私に知らせてください.

4

2 に答える 2

1

@SpySudhir-

ロジックA:

  • キーボードが外部または内部の場合にyes/no値を返すbool変数がファイルにあります。

  • 返されたbool値に基づいて、アニメーション関数を呼び出します。

ロジックB:

  • NSNotificationCenterを使用してキーボード通知を聞きます。

  • will、show、hide通知などの通知は、NSLogをそれらの上に置き、それらのどれが呼び出されているかを確認します。

  • 外部ボードが接続されている場合、willShowメソッドは呼び出されません。したがって、この場合、回避策を実行してbool値をnoに設定するか、カウンターを作成して、値が1つ増えるか、またはこのようなものであるかどうかを毎回確認することができます。

于 2012-03-02T14:04:54.723 に答える
1

フィールドがフォーカスを取得したときにビューを上に移動する必要はありません。UIKeyboardDidShowNotification への応答としてのみビューを上に移動する必要があります。残りはシステムが処理します。

于 2013-04-07T09:40:02.280 に答える