Как создать UITextView, который автоматически переносит строки текста? - PullRequest
10 голосов
/ 22 июля 2011

Я создаю приложение, которое создает UITextView программно. Проблема в том, что когда пользователь вводит текст или приложение устанавливает текст, слова распространяются по одной строке и за пределами экрана, а не переносятся на следующую строку. Когда я создаю UITextView с помощью построителя интерфейса, текст переносится автоматически, но не тогда, когда он создается программно.

Код:

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(100, 12, 210, 60)];
[[self view] addSubview:textView];
[textView becomeFirstResponder];

Ответы [ 3 ]

5 голосов
/ 06 декабря 2015

Доступно с iOS 7:

textView.textContainer.lineBreakMode = NSLineBreakByWordWrapping;
3 голосов
/ 22 июля 2011

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

0 голосов
/ 22 июля 2011

Весь смысл UITextView состоит в том, чтобы разрешить несколько строк текста. Из документации:

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

Поскольку UITextView наследуется от UIScrollView, вы можете заставить его сотрудничать, отключив горизонтальную прокрутку. Для этого вы хотите установить contentSize, например

CGSize scrollableSize = CGSizeMake(210, 480);
[textView setContentSize:scrollableSize];

Это установит ширину к 210 и позволит высоте прокручиваться до 480. Поскольку вы устанавливаете textView для размера (210,60), это должно позволить вертикальную прокрутку, но не горизонтальную прокрутку.

...