我有一个很大的UITextView
,几乎全屏。如果我点击它,键盘弹出,我可以编辑文本。但是,我输入的时间越长,文本最终会在键盘后面的视图中运行。我再也看不到我在打字了。
你是如何处理的?您是否必须跟踪光标位置并手动滚动视图?
答案 0 :(得分:7)
您需要使用以下代码根据文本范围(或根据输入说明)向下滚动textview
NSRange range = NSMakeRange(textView.text.length - 1, 1);
[textView scrollRangeToVisible:range];
希望,这会对你有帮助......
答案 1 :(得分:5)
我猜您必须将UITextView的大小设置为键盘显示/隐藏。所以键盘不会超过你的textview。这是示例代码。
- (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
}
答案 2 :(得分:2)
TPKeyboardAvoiding是一款出色的工具,可以处理所有滚动操作以避免使用键盘。 /非常/方便,强烈推荐。请参阅:https://github.com/michaeltyson/TPKeyboardAvoiding