我已经成功设置了一个滚动视图,可以移动一些文本字段和文本视图,以防它们被键盘隐藏。但是,当文本视图收到一些超出第一行的文本时,下一行显然是被键盘隐藏的。因此,每次在UITextview实例中添加/删除新行时,我都在寻找一种向上/向下移动视图的技巧。
求助,
的Stephane
答案 0 :(得分:1)
您可以实施
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
在您的UITextView委托上的方法,计算textviews文本中的换行符数,计算您需要滚动的距离和滚动。 (每次用户键入一个字符时都会调用此方法。)
或者,您可以使用更简单的路线并滚动到足以显示整个UITextView
。如果用户输入的文本视图超过了文本视图,则textview将自动开始滚动。
答案 1 :(得分:1)
使用scrollRectToVisible:animated:
或setContentOffset:animated:
- 在您的情况下,第一个,如:
[scrollView scrollRectToVisible:textField.frame animated:YES];
您可能还需要将文本字段内容滚动到可见,但我认为这应该会自动发生。
答案 2 :(得分:0)
因此,如果您编译以前的答案:
只需将您的textView.delegate
设为自己,将viewController
设为<UITextViewDelegate>
,然后:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
[textView scrollRangeToVisible:range];
return YES;
}