如何在用户输入时使UITextView水平滚动?

时间:2009-10-12 15:18:18

标签: iphone cocoa-touch sdk uitextview

这似乎应该很简单,但我无法弄清楚如何去做。

我在界面构建器中创建了一个UITextView。它不会坐在桌子上或类似的任何东西。

我想做的是当用户一直输入到右边距时,让UITextView向左滚动。

目前它只是一个自动换行,我理解自动换行在大多数情况下都有意义,但我需要它来滚动。我所追求的是它垂直呈现的相同行为。

我已经尝试在viewDidLoad和viewDidAppear中调整UITextView的内容大小,这没有什么区别。

我也玩过IB中的插入设置,但这不会影响可滚动的大小,只是显示它的位置。

有没有人有任何想法?

2 个答案:

答案 0 :(得分:2)

如果您只需要滚动一行文字,那么UITextField可能会更好。 UITextView用于多行文本输入,这就是自动换行是默认设置的原因。据我所知,你不能覆盖这种行为。

答案 1 :(得分:1)

好吧,它看起来并不像我想要的那样,但是我想出了一个黑客来让我到那儿。

假设我想要一个600的可滚动宽度和250的可见宽度。

第一步是将UITextView扩展为您想要滚动的区域。那么你将在contentSize中加入什么,在本例中为600。

然后将右边插图设置为实际宽度和所需宽度之间的差值。在这种情况下350。

这种方式光标被限制在你需要的宽度但是你想要的宽度右边有文字,毕竟UITextView的宽度是600像素。

现在这里是真正的hackish bit in,如果你敏感或胃部不好,请不要继续阅读。

获取UITextView应该结束的右侧用户界面的图像。将它作为UIImage视图插入NIB并将其放回原位,确保它位于UITextView的顶部。

显示视图时,剪切块位于UITextView的顶部,并隐藏文本溢出。

我并不自豪,但它确实有效。