iPad で Split Keyboard のフレームをいじっています。
まあ、UIKeyboardWillChangeFrame
分割キーボードが表示または非表示になるたびにトリガーされるようです。
ドッキング モードではUIKeyboardWillShow
、UIKeyboardWillHide
通知がトリガーされます。
NSNotification オブジェクトでは、ドッキング モードと分割モードの両方に当てはまるキーボードのフレームを取得できます。
画面上で分割キーボードを動かすと、本当の楽しみが始まります。画面上でキーボードを動かすたびに、通知オブジェクトの endframe は (0,0,0,0) になります。convertFrame
座標を使用してフレームを変換すると、 に変わります(0,-124,0,0)
。これは、上方向または下方向のキーボードの動きに当てはまります。
他のすべてのケースでは、エンドフレームはフレーム上で正しい座標を提供しているようです。
このコードは、ポイント単位で正確なフレームを提供します。
CGRect startFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
CGRect endFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
ユーザーが画面上で分割キーボードを動かすと、このエンドフレームは (0,0,0,0) になります。
現在のビューに従って正確な座標を取得するには、次のようにします。
CGRect convertedStartFrame = [self.view.window convertRect:startFrame toView:self.view];
CGRect convertedEndFrame = [self.view.window convertRect:endFrame toView:self.view];
This convertedEndFrame = (0,-124,0,0) when endFrame = (0,0,0,0).
もう1つ、コードを介してキーボードを移動していません。
これが Apple の既知のバグなのか、それとも私が何かを見逃しているのか、よくわかりません。
うまくいけば、誰かが私に物事を指摘することができます.
ありがとう。