私は、メッセージングを行うiPadのiMessageアプリに似たアプリを作成しています。したがって、キーボードが表示されているときは、メッセージビューの下部に入力ビューが固定され、アクセサリビューが入力されます。また、ドッキングまたはドッキング解除中にキーボードが表示されている場合は、メッセージビューのサイズを適切に変更する必要があります。iPad分割キーボード
問題は、UIKeyboardWillChangeFrameNotificationからの通知データが一貫していないことです。
まず、ユーザがキーボードのドッキングを解除することができ、3つの方法があります。
- は、長押し、次に右下のキーを押し続けると、
- をスライドさせ、右下のキーを、メニューがポップアップしたときに、ケース#1は、「スプリット」
を選択し、メニューがポップアップし、右下のキーを、押し続けると、
userInfo = {
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}
ケース#2、#3のデータについては、私が受け取る何をここで、矛盾しているされています:ここにデータがある
userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = "0.25";
UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
UIKeyboardCenterBeginUserInfoKey = "NSPoint: {384, 872}";
UIKeyboardCenterEndUserInfoKey = "NSPoint: {384, 1136}";
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
UIKeyboardFrameChangedByUserInteraction = 0;
UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, -264}, {768, 304}}";
}
何ここで奇数であることである私は、ケースの下UIKeyboardDidChangeFrameNotificationをリッスンするとき#2または#3の場合、データは期待どおりに表示されます。
なぜ通知データが異なるのですか?誰かがスプリットキーボードイベントを検出する明確な方法を見つけましたか?
これは、iPad Miniが導入されて以来、もっと難しくなるだろう。私はまだiOS 7に触れていない... –
違いはありません。 216はピクセルではなく、解像度とは無関係な点のパルメータです。しかし、これはiPhone 4と5では機能しません。また、iPhoneにはキーボードが分割されていません。彼らはフォームファクタを変えます。 – Bimawa
これは良い解決策ではありません。キーボードの高さは、ロケール、バージョン、デバイスによって異なります。 – capikaw