我有一个大的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