我有一个应用程序,其界面由条目的表格视图和用于查看和输入该条目的文本的文本视图组成。对于新创建的条目,我可以毫无问题地输入文本并滚动文本视图。但是,当我选择其他条目时,我在 iOS 11 设备上的纵向出现问题。当我输入足够的文本以强制文本视图滚动时,文本视图不会滚动。我必须将设备旋转为横向并返回纵向以使文本视图滚动。我在运行 iOS 9 和 iOS 10 的设备上没有这个问题。文本视图是一个启用了滚动的普通文本视图。
作为一个实验,我关闭了情节提要的安全区域布局指南。这样做使文本视图在我第一次在表格视图中选择条目时滚动。但是,如果我返回表格视图并返回文本视图,我会得到与打开安全区域布局指南相同的行为。除非我旋转到横向并返回到纵向,否则文本视图不会纵向滚动。
我添加到 Apple 标准 UITextView 的唯一代码是显示和隐藏键盘的代码。
@objc func keyboardWasShown(notification: NSNotification) {
// Scroll the text view so the keyboard doesn't block what's being typed.
let info = notification.userInfo
if let keyboardRect = info?[UIKeyboardFrameBeginUserInfoKey] as? CGRect {
let keyboardSize = keyboardRect.size
textView.contentInset = UIEdgeInsetsMake(0, 0, keyboardSize.height, 0)
textView.scrollIndicatorInsets = textView.contentInset
}
}
@objc func keyboardWillBeHidden(notification: NSNotification) {
textView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
textView.scrollIndicatorInsets = textView.contentInset
}
我需要做什么才能让文本视图在 iOS 11 设备上纵向滚动?