私は大きなUITextView
、ほぼフルスクリーンを持っています。タップするとキーボードが出てきて、テキストを編集できます。ただし、長く入力すると、最終的にはテキストがキーボードの後ろに表示されます。何を入力しているのか見えなくなりました。
これにどのように対処しますか?カーソル位置を追跡し、ビューを手動でスクロールする必要がありますか?
私は大きなUITextView
、ほぼフルスクリーンを持っています。タップするとキーボードが出てきて、テキストを編集できます。ただし、長く入力すると、最終的にはテキストがキーボードの後ろに表示されます。何を入力しているのか見えなくなりました。
これにどのように対処しますか?カーソル位置を追跡し、ビューを手動でスクロールする必要がありますか?
テキスト範囲に応じてテキストビューを下にスクロールするには、次のコードを使用する必要があります(または入力に応じて言います)
NSRange range = NSMakeRange(textView.text.length - 1, 1);
[textView scrollRangeToVisible:range];
うまくいけば、これはあなたを助けるでしょう...
キーボードの表示/非表示に合わせて 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
}
TPKeyboardAvoiding は、すべてのスクロールを処理してキーボードを回避する優れたツールです。/非常に/便利で、強くお勧めします。参照: https://github.com/michaeltyson/TPKeyboardAvoiding