0

ここでUITextFieldのスクロールと非表示に関する多くの投稿を見て、UITextViewでも同じコードが機能すると信じていましたが、そうではないようです。私が最初に遭遇した問題は、私が持っているサンプル アプリが、横向きのみをサポートする iPad アプリであるということでした。通知から返されたキーボード サイズは、キーボードの高さと幅が逆になっていました。

次に、スクロールビューでテキストビューをスクロールすることはできますが、すべてが表示されるわけではなく、実際に表示されるテキストビューの量は、テキストビューのどこをタップするかによって異なります。それは、私が望むものではないカーソルがある場所までスクロールしているようなものです。

これが私が使用しているコードです。これは例から取ったもので、実際の唯一の変更点は、UITextField の代わりに UITextView を使用することです。私がする唯一のことは、テキストビューをテキストフィールドに置き換えることだけであれば、うまく機能します。

- (void)keyboardWasShown:(NSNotification*)aNotification
{
    NSDictionary* info = [aNotification userInfo];
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
    UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.width, 0.0);
    _myscrollview.contentInset = contentInsets;
    _myscrollview.scrollIndicatorInsets = contentInsets;
    CGRect aRect = self.view.frame;
    aRect.size.height -= kbSize.width;
    DebugLog(@"textview = %@", _textview);

    if (!CGRectContainsPoint(aRect, _textview.frame.origin) ) {
        CGPoint scrollPoint = CGPointMake(0.0, _textview.frame.origin.y-kbSize.width);
        [_myscrollview setContentOffset:scrollPoint animated:YES];
    }
}
4

2 に答える 2