我有一个UIViewCOntroller包含一个UITextView.当键盘出现时我按如下方式调整大小:
#pragma mark - Responding to keyboard events
- (void)keyboardDidShow:(NSNotification *)notification
{
NSDictionary* info = [notification userInfo];
CGRect keyboardSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect newTextViewFrame = self.textView.frame;
newTextViewFrame.size.height -= keyboardSize.size.height + 70;
self.textView.frame = newTextViewFrame;
self.textView.backgroundColor = [UIColor yellowColor];
}
- (void)keyboardWillHide:(NSNotification *)notification
{
NSDictionary* info = [notification userInfo];
CGRect keyboardSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect newTextViewFrame = self.textView.frame;
newTextViewFrame.size.height += keyboardSize.size.height - 70;
self.textView.frame = newTextViewFrame;
}
Run Code Online (Sandbox Code Playgroud)
textView似乎重新调整到合适的大小,但是当用户键入光标时,最终会在textView框架的"外部".见下图:

黄色区域是UITextView框架(我不知道R键旁边的蓝线是什么).我发现这很有线.如果这有任何区别,我正在使用iOS7.
任何想法或提示?
更新
我有一个UITextView子类,使用以下方法绘制水平线(如果这有任何区别):
- …Run Code Online (Sandbox Code Playgroud) 我有一个包含全屏的视图控制器UITextView.当键盘显示时,我想调整文本视图的大小,使其不会隐藏在键盘下面.
对于iOS,这是一种相当标准的方法,如本问题所述:
但是,对于iOS 7,如果用户点击屏幕下半部分的文本视图,则当文本视图调整大小时,光标将保持在屏幕外.如果用户点击进入,则文本视图仅滚动以将光标置于视图中.