Как заставить UITextView прокручиваться горизонтально, когда пользователь печатает? - PullRequest
0 голосов
/ 12 октября 2009

Кажется, это должно быть просто, но я не могу понять, как это сделать.

Я создал UITextView в конструкторе интерфейсов. Он не сидит в клетке стола или в чем-то подобном.

Что я хотел бы сделать, так это прокрутить UITextView влево, когда пользователь наберет весь путь до правого поля.

На данный момент это просто перенос слов, я понимаю, что перенос слов имеет смысл в большинстве ситуаций, но мне нужно вместо этого прокручивать. То, что я ищу, - это то же поведение, которое проявляется по вертикали.

Я пытался настроить размер содержимого UITextView в viewDidLoad, а также в viewDidAppear, и это не имеет значения.

Я также играл с настройками вставки в IB, но это не влияет на прокручиваемый размер, просто ГДЕ он отображается.

У кого-нибудь есть идеи?

Ответы [ 2 ]

2 голосов
/ 12 октября 2009

Если вам нужна только одна прокручиваемая строка текста, вам, вероятно, будет лучше обслужить UITextField. UITextView s предназначены для многострочного ввода текста, поэтому перенос слов используется по умолчанию. Насколько я знаю, вы не можете изменить это поведение.

1 голос
/ 14 октября 2009

Ладно, не похоже, что это можно сделать именно так, как я хотел, но я придумал хак, чтобы доставить меня туда.

Допустим, я хочу прокручиваемую ширину 600 и видимую ширину 250.

Первым шагом является расширение UITextView в качестве области, которую вы хотите прокручивать. Итак, что бы вы поместили в contentSize, в данном случае 600.

Тогда в правой вставке будет задана разница между фактической шириной и требуемой шириной. В этом случае 350.

Таким образом курсор удерживается на необходимой ширине, НО текст виден справа от желаемой ширины, в конце концов, UITextView имеет ширину 600 пикселей.

Теперь вот где начинается действительно хакерский бит, не читайте дальше, если вы чувствительны или у вас слабый желудок.

Получить изображение пользовательского интерфейса справа, где должен заканчиваться UITextView. Вставьте его в NIB как представление UIImage и верните на место, убедившись, что он находится над UITextView.

Когда отображается вид, вырез находится в верхней части UITextView и скрывает переполнение текста.

Я не горжусь, но это работает.

...