我正在我的应用程序中实现一些简单的文本聊天功能,但我在以UITextView
编程方式滚动时遇到问题。我正在使用UITextView
在 Interface Builder 中创建的,它将新行和一些文本附加到预先存在的文本中。添加新文本后,它应该滚动到底部。
在将其添加到我的应用程序之前,我构建了一个测试应用程序来确定这个概念。UITextView
更新中的文本使用 a中的文本进行更新UITextField
,但不会发生滚动。
- (IBAction)enteredText {
CGPoint currentPosition = [textWindow contentOffset];
[textWindow setText:[NSString stringWithFormat:@"%@\n%@", textWindow.text, textInput.text]];
[textWindow setContentOffset:currentPosition animated:NO];
[textWindow scrollRangeToVisible:NSMakeRange([textWindow.text length], 0)];
[textInput setText:@""];
[textInput becomeFirstResponder];
}
我记得在我不久前开发的另一个应用程序中实现了一个非常相似的功能,并且我记得代码是相似的。唯一的区别是早期的应用程序是针对 iPhone OS 2 而这个是针对 3.0。我在一些论坛上读到,当UITextView
在 Interface Builder 中创建 3.0 beta 时,滚动出现了一些问题。我检查了当前的发行说明,但没有看到任何迹象。
编辑:调用 IB 操作是因为 UITextView 中的文本已更新。并选中“可取消的内容触摸”。
编辑:确认相同的代码适用于 2.2.1 但不适用于 3.0