【发布时间】:2011-06-06 19:58:32
【问题描述】:
我正在使用 UITextView 为 iPad 开发一个简单的文本编辑应用程序。 UIScrollView 和 UITextView 总是有一些问题。我想我对这两个人的期望太高了。
当我将 myTextView.text 设置为另一个 NSString 实例时,会自动发生滚动。我可以通过设置来防止这种滚动
myTextView.scrollEnabled = NO;
myTextView.text = newText;
myTextView.scrollEnabled = YES;
但是,如果我更改了 myTextView 的 selectedRange 属性,就会发生滚动。
具体来说,如果 selectedRange 的范围发生在当前屏幕的文本上,则不会发生滚动。
例如,如果我通过点击“全选”属性选择所有文本,则不会发生滚动。但是如果我通过将 selectedRange 设置为 NSMakeRange(0, [myTextView.text length]) 来选择所有文本,则会滚动到 END(最后一个插入符号位置)。
为了解决问题, 1)我保存了myTextView的原始内容偏移量。
CGPoint originalOffset = myTextView.contentOffset;
// change myTextView.selectedRange here
myTextView.selectedRange = originalOffset
但什么也没发生。
2) 几秒钟后,我使用 NSTimer 调用了上述代码,并正确滚动返回到原始位置(偏移量)。但是,先滚动到最后,然后再滚动到顶部..
有没有办法完全阻止 UITextView 的滚动?
【问题讨论】:
标签: iphone ipad ios uiscrollview uitextview