Как создать многострочное UITextfield?

Я разрабатываю приложение, в котором пользователь должен написать некоторую информацию. Для этого мне нуженUITextField который многострочный (в общемUITextField это одна строка).

Насколько я'гуглюсь я нахожу ответ с помощьюUITextView вместоUITextfield для этого.

 Gal Blank14 авг. 2013 г., 17:33
Вот небольшой контроль, который я написал именно для этой цели. имеет многострочную поддержку, а также кнопку «Готово» для закрытия клавиатуры. не стесняйтесь использовать егоcode.google.com/p/galtextfield
 mahesh chowdary27 нояб. 2013 г., 08:11
используйте эти сторонние классы, импортируйте ваш проект xcode и используйте его, слишком хорошая ссылка:github.com/adonoho/HPGrowingTextView

Ответы на вопрос(8)

Подкласс UITextField и перезаписать:

- (void)drawTextInRect:(CGRect)rect

В этом методе вы можете, например:

    NSDictionary *attributes = @{ NSFontAttributeName : self.font,
                                  NSForegroundColorAttributeName : self.textColor };

    [self.text drawInRect:verticalAlignedRect withAttributes:attributes];

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

Не использовать:

self.defaultTextAttributes

который заставит одну строку рендеринга текста

Решение Вопроса

UITextField конкретно только в одну строку.

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

В Интерфейсном Разработчике добавьтеUITextView где вы хотите и выберите "редактируемые» коробка. По умолчанию будет многострочным.

 SANTOSH12 июл. 2017 г., 08:55
но что делать, когда в окне оповещения есть текстовое поле ???
 Mani28 дек. 2014 г., 19:07
Как установить заполнитель для UITextView?
 Markus22 янв. 2016 г., 00:09
Пожалуйста, кто-нибудь может мне помочь со следующим вопросом? Если пользователь пишет маркированный текст (несколько разрывов строк) в UITextView, как определить общее количество разрывов строк?
 Andrew Romanov04 мар. 2015 г., 12:20
Вы можете'Добавить текстовый заполнитель в TextView, но вы можете добавить серую метку поверх TextView и скрыть ее, если пользователь вводит какой-либо текст.
 zest09 дек. 2014 г., 12:24
Расскажите, пожалуйста, как собственное приложение Календарь делает View с заполнителем и переносом слов для заметок на экране добавления событий?

) Сначала собериUITextField и увеличил этоsize как это :

CGRect frameRect = textField.frame;
        frameRect.size.height = 53;
        textField.frame = frameRect;

Затем построитьUITextView точно в той же области, что ты сделал мойUITextFieldи удалил егоbackground color, Теперь похоже, что у вас есть несколько строк!TextField

 Nate Symer10 авг. 2015 г., 21:16
Это создаетUITextView, Смысл наличия UITextField в том, что он ведет себя иначе, чем a.UITextView
 Sam Ballantyne19 нояб. 2016 г., 19:14
Есть куча различий междуUITextView а такжеUITextfield: они наследуют отUIScrollView противUIControl, не редактируемые по умолчанию и не редактируемые по умолчанию, многострочные и однострочные, разные протоколы делегатов, заполнитель без заполнителя и заполнитель.
 phatmann21 дек. 2013 г., 18:02
Я использовал автоматическое расположение и закрепил все стороны UITextField в UITextView. Действительно отличный трюк, спасибо!
 Esteve07 мар. 2014 г., 14:44
пожалуйста @phantmann, можете ли вы показать нам свой код для автоматического макета?
 Sam Ballantyne19 нояб. 2016 г., 19:16
UITextView для абзацев текста. Используйте его, если вам нужен абзац текста, а не иначе.

используя UITextView. Проблема, которую выВы потеряете функциональность заполнителя.

Если вы решили использовать UITextView и вам нужен заполнитель, сделайте это:

В вашем viewDidLoad установите цвет и текст для заполнителей:

myTxtView.textColor = .lightGray
myTxtView.text = "Type your thoughts here..."

Затем заставьте заполнитель исчезнуть, когда выбран ваш UITextView:

func textViewDidBeginEditing (textView: UITextView) {
    if myTxtView.textColor.textColor == ph_TextColor && myTxtView.isFirstResponder() {
        myTxtView.text = nil
        myTxtView.textColor = .white
    }
}

Когда пользователь закончит редактирование, убедитесь, чтоэто значение. Если нетt, снова добавьте заполнитель:

func textViewDidEndEditing (textView: UITextView) {
    if myTxtView.text.isEmpty || myTxtView.text == "" {
        myTxtView.textColor = .lightGray
        myTxtView.text = "Type your thoughts here..."
    }
}

Другие функции, которые могут вам понадобиться, чтобы подделать:

UITextField»Часто заглавные буквы, вы можете добавить эту функцию в UITableView:

myTxtView.autocapitalizationType = .words

UITextField»с нет обычно прокручивают:

myTxtView.scrollEnabled = false

один из вариантов - добавить UILabel в качестве подпредставления UITextField для второй строки текста. В моем приложении есть UITextField, который пользователи часто не понимают, что его можно редактировать нажатием, и я хотел добавить небольшой текст субтитров, который говорит:Нажмите, чтобы изменить " в поле UITextField.

CGFloat tapLlblHeight = 10;
UILabel *tapEditLbl = [[UILabel alloc] initWithFrame:CGRectMake(20, textField.frame.size.height - tapLlblHeight - 2, 70, tapLlblHeight)];
tapEditLbl.backgroundColor = [UIColor clearColor];
tapEditLbl.textColor = [UIColor whiteColor];
tapEditLbl.text = @"Tap to Edit";

[textField addSubview:tapEditLbl];

Вам придется иметь дело с некоторыми вещами по-другому (например, клавиша возврата), но вы можете добавить к нему текст, и он позволит вам прокручивать вверх и вниз, еслислишком много текста внутри.

Эта ссылка содержит информацию о создании экрана для ввода данных:

создать экран ввода данных

 Christian Payne11 дек. 2012 г., 23:33
Ссылка у меня сработала

Ответ, приведенный выше, более простой способ отрегулировать высоту UITextField - выбрать стиль квадратной границы в инспекторах атрибутов->Текстовое поле. (По умолчанию стиль рамки поля UIText - эллипс.)

Ссылка: ответил Брайан здесь:Как установить высоту UITextField?

основное различие между UITextView и UITextField состоит в том, что UITextView не предлагает заполнитель. Чтобы обойти это ограничение, вы можете использовать UITextView с "фальшивый заполнитель. "

Смотрите этот ТАК вопрос для деталей:Заполнитель в UITextView.

Ваш ответ на вопрос