Я разрабатываю приложение, в котором пользователь должен написать некоторую информацию. Для этого мне нужна UITextField
многострочная (в общем UITextField
случае одна строка).
Поскольку я гуглюсь, я нахожу ответ, используя UITextView
вместо этого UITextfield
для этой цели.
ios
uitextfield
uitextview
Raaz
источник
источник
Ответы:
UITextField
конкретно только в одну строку.Ваш поиск в Google корректен, вам нужно использовать его
UITextView
вместоUITextField
отображения и редактирования многострочного текста.В Интерфейсном Разработчике добавьте,
UITextView
где вы хотите, и установите флажок «редактируемый». Это будет многострочным по умолчанию.источник
Вы можете подделать UITextField с помощью UITextView. Проблема, с которой вы столкнетесь, заключается в том, что вы потеряете функциональность заполнителя.
Если вы решили использовать UITextView и вам нужен заполнитель, сделайте это:
В вашем viewDidLoad установите цвет и текст для заполнителей:
Затем заставьте заполнитель исчезнуть, когда выбран ваш UITextView:
Когда пользователь закончит редактирование, убедитесь, что есть значение. Если нет, добавьте заполнитель снова:
Другие функции, которые могут вам понадобиться, чтобы подделать:
UITextField часто использует заглавные буквы для каждой буквы, вы можете добавить эту функцию в UITableView:
UITextField обычно не прокручивается:
источник
Хорошо, я сделал это с помощью некоторого трюка;) Сначала соберите
UITextField
и увеличьте этоsize
так:Затем создайте
UITextView
точно в той же области, что и мойUITextField
, и удалите егоbackground color
. Теперь похоже, что у вас есть несколько строкTextField
!источник
UITextView
. Смысл наличия UITextField в том, что он ведет себя иначе, чем aUITextView
.UITextView
иUITextfield
: они наследуются отUIScrollView
vsUIControl
, не редактируемые по умолчанию и не редактируемые по умолчанию, многострочные и однострочные, разные протоколы делегирования, не заполнитель и заполнитель.UITextView
для абзацев текста. Используйте его, если вам нужен абзац текста, а не иначе.Помимо многострочного поведения, основное различие между UITextView и UITextField состоит в том, что UITextView не предлагает заполнитель. Чтобы обойти это ограничение, вы можете использовать UITextView с «поддельным заполнителем».
Смотрите этот SO вопрос для деталей: Заполнитель в UITextView .
источник
Если у вас должен быть UITextField с двумя строками текста, один из вариантов - добавить UILabel в качестве подпредставления UITextField для второй строки текста. В моем приложении есть UITextField, который пользователи часто не понимают, можно ли редактировать нажатием, и я хотел добавить небольшой текст субтитров с надписью «Нажмите, чтобы изменить» в UITextField.
источник
Да, UITextView - это то, что вы ищете. Вам придется иметь дело с некоторыми вещами по-разному (например, клавиша возврата), но вы можете добавить к нему текст, и он позволит вам прокручивать вверх и вниз, если внутри слишком много текста.
Эта ссылка содержит информацию о создании экрана для ввода данных:
создать экран ввода данных
источник
использовать UITextView вместо UITextField
источник
В дополнение к ответу h4xxr выше, более простой способ отрегулировать высоту UITextField - выбрать стиль квадратной границы в атрибуте inspectors-> Text Field. (По умолчанию стиль рамки поля UIText - эллипс.)
Ссылка: ответил Брайан здесь: Как установить высоту UITextField?
источник
Есть еще один вариант, который работал для меня:
Подкласс UITextField и перезаписать:
В этом методе вы можете, например:
Этот код будет отображать текст, используя столько строк, сколько требуется, если в прямоугольнике достаточно места. Вы можете указать любой другой атрибут в зависимости от ваших потребностей.
Не используй:
который заставит одну строку рендеринга текста
источник