6

私は大きなUITextView、ほぼフルスクリーンを持っています。タップするとキーボードが出てきて、テキストを編集できます。ただし、長く入力すると、最終的にはテキストがキーボードの後ろに表示されます。何を入力しているのか見えなくなりました。

これにどのように対処しますか?カーソル位置を追跡し、ビューを手動でスクロールする必要がありますか?

4

3 に答える 3

7

テキスト範囲に応じてテキストビューを下にスクロールするには、次のコードを使用する必要があります(または入力に応じて言います)

NSRange range = NSMakeRange(textView.text.length - 1, 1);
[textView scrollRangeToVisible:range];

うまくいけば、これはあなたを助けるでしょう...

于 2012-05-05T07:14:43.093 に答える
5

キーボードの表示/非表示に合わせて UITextView のサイズを変更する必要があると思います。したがって、キーボードはテキストビューにはなりません。ここにサンプルコードがあります。

- (void)viewDidLoad
{
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillShow:)
                                                 name:UIKeyboardWillShowNotification
                                               object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillHide:)
                                                 name:UIKeyboardWillHideNotification
                                               object:nil];
}

- (void)keyboardWillShow:(NSNotification *)notification
{
    [UIView beginAnimations:nil context:nil];
    CGRect endRect = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
    CGRect newRect = YOUT_TEXT_VIEW.frame;
    //Down size your text view
    newRect.size.height -= endRect.size.height;
    YOUT_TEXT_VIEW.frame = newRect;
    [UIView commitAnimations];
}

- (void)keyboardWillHide:(NSNotification *)notification
{
    ... // Resize your textview when keyboard is going to hide
}
于 2012-05-05T07:33:50.840 に答える
2

TPKeyboardAvoiding は、すべてのスクロールを処理してキーボードを回避する優れたツールです。/非常に/便利で、強くお勧めします。参照: https://github.com/michaeltyson/TPKeyboardAvoiding

于 2012-05-05T15:41:03.807 に答える