在 iOS 7 上成为第一响应者后,UITextView 不会滚动到插入符号

Posted

技术标签:

【中文标题】在 iOS 7 上成为第一响应者后,UITextView 不会滚动到插入符号【英文标题】:UITextView doesn't scroll to caret after becoming first responder on iOS 7 【发布时间】:2013-09-20 09:34:51 【问题描述】:

我有UITableViewCell,在这个单元格中我有UITextView 和一些文字。当我在ios 6 上调用becomeFirstResponder 时,它会按预期工作,并且表格视图会滚动到插入符号,但这在iOS 7 上不起作用。

我在单元格中也有UITextFields,它与iOS 7 上的becomeFirstResponder 配合得很好。只是UITextView 是个问题。

这是一个错误还是他们改变了什么?

【问题讨论】:

【参考方案1】:

我想出了我的解决方案,它使用来自UITableView 的方法(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated 和来自UITextInput 的方法(CGRect)caretRectForPosition:(UITextPosition *)position,并在对高度进行了一些数学运算之后。我已经实现了与在 iOS 6 上相同的行为。它不是很好,但它可以工作。

如果有人提出更好的解决方案,请告诉我。

【讨论】:

以上是关于在 iOS 7 上成为第一响应者后,UITextView 不会滚动到插入符号的主要内容,如果未能解决你的问题,请参考以下文章

当父 UIViewController 设置为 RootViewController 时,UIView 不会成为第一响应者

iOS - UIButton 成为打开键盘的第一响应者

iOS——是不是可以强制 UILabel 子类对象成为第一响应者?

iOS 如何使 inputaccessoryview 中的文本视图成为第一响应者?

模态关闭后,键盘显示错误的颜色 - iOS

视图控制器何时会成为第一响应者?