自从 iOS 7 开始,
我安装了 Xcode 5.1 并针对 iOS 7.1 进行设置。我正在使用自动布局。
以下是我如何将文本视图的内容定位在键盘上方:
UITextView
在用户输入跨行文本时不会自动滚动到光标位置。这个问题在 Stack Overflow 和其他地方都有详细记录。对我而言,在 iOS 7.1 中仍存在该问题。我做错了什么?我安装了 Xcode 5.1 并针对 iOS 7.1 进行设置。我正在使用自动布局。
以下是我如何将文本视图的内容定位在键盘上方:
- (void)keyboardUp:(NSNotification *)notification
{
NSDictionary *info = [notification userInfo];
CGRect keyboardRect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
keyboardRect = [self.view convertRect:keyboardRect fromView:nil];
UIEdgeInsets contentInset = self.textView.contentInset;
contentInset.bottom = keyboardRect.size.height;
self.textView.contentInset = contentInset;
}
我尝试过的方法: 我尝试了许多在SO上发布的与iOS 7相关的解决方案。我所尝试的所有解决方案似乎都不适用于显示属性字符串的文本视图。在以下三个步骤中,我将概述SO上最受欢迎的答案(https://dev59.com/kGMk5IYBdhLWcg3wyw0U#19277383)如何响应用户首次点击返回键。
(1.) 在viewDidLoad
中,文本视图成为第一个响应者。滚动到光标所在的文本视图底部。
(2.) 在键盘上没有输入任何字符之前,先点击一下返回键,光标就会消失不见。
(3.) 然而,再次点击返回键似乎可以使情况恢复正常。(注意:删除后面的换行符会再次使光标消失)。