キーボードが表示されているときにフォームを上に移動しようとします。私のアプローチは、キーボードのフレームとテキスト フィールドのフレームが交差するかどうかをテストすることです。
- (void)keyboardDidShow:(NSNotification *)notification
{
// Get the size of the keyboard.
CGRect keyboardFrame = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
//Test whether the current frame of the text field is hidden by the keyboard
if (!CGRectIsNull(CGRectIntersection(keyboardFrame,self.activeField.frame))) {
NSLog(@"Key board frame intersects with the text field frame");
}
}
上記のコードでは、CGRectIsNull
常に null を返します。
デバッグ ステートメントは、フォームで選択されているキーボードとアクティブなテキスト フィールドに関する次の情報を返します。
キーボードのサイズ = (幅 = 352、高さ = 1024) キーボードの原点 = (x=-352、y = 0)
キーボード フレーム = (-352,0,352,1024) テキスト フィールド フレーム = (200, 15, 300, 30)
すべてのテキスト フィールドに同じフレーム値が含まれています。これは、何かが間違っていることを意味します。では、フォームを上下に移動するために、キーボードがテキスト フィールドを隠しているかどうかをテストするにはどうすればよいでしょうか。ありがとう。