Содержимое UITextField и UITextView в NSString

У меня настроены UITextView и 2 UITextField. UITextView отказывается от статуса первого респондента при касании пустой части экрана, то же самое для 2 UITextField, плюс для этих 2, клавиша возврата также отказывается от статуса первого респондента. Все 3 заявлены в интерфейсе.

Я хотел бы получить содержимое всего этого в отдельном NSString и / или узнать, как вводить их прямо в что-то вроде:

NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?var1=%@&var2=%@&var3=%@", *content of UITextView*, *content of UITextField*, *content of UITextField*];

Я знаю, что это очень простой вопрос, но я в значительной степени новичок. Если я узнаю, как это сделать, я, вероятно, смогу забрать оттуда.

ваше здоровье

(отредактировано)


person bcsantos    schedule 27.05.2009    source источник


Ответы (2)


У UITextField и UITextView есть свойство text, которое вы можете использовать для получения строковых значений. Например,

NSString *string = [NSString stringWithFormat:@"%@, %@", textField.text, textView.text];

Имейте в виду, что вы, вероятно, захотите проверить строки, чтобы убедиться, что они не пустые и не содержат недопустимые символы, прежде чем помещать их в URL-адрес.

person Marc Charbonneau    schedule 27.05.2009

Принятый ответ хорош, я просто хотел добавить следующее, чтобы подробнее рассмотреть захват текста в iOS.

См. Аспект textInRange: приведенного ниже кода, который я разработал для использования одной функции для определения текста, будь то UITextField, UITextView или любой другой класс, который соответствует протоколу UITextInput.

//handle text container object length whether it's a UITextField, UITextView et al
NSUInteger LengthOfStringInTextInput(NSObject<UITextInput> *textContainer)
{
    UITextPosition *beginningOfDocument = [textContainer beginningOfDocument];
    UITextPosition *endOfDocument =       [textContainer endOfDocument];
    UITextRange    *fullTextRange =       [textContainer textRangeFromPosition:beginningOfDocument 
                                                                    toPosition:endOfDocument];
    return [textContainer textInRange:fullTextRange].length;
}

Изменив тип возвращаемого значения на NSString и удалив .length, вы можете получить функциональность свойства text для любого класса.

person james_womack    schedule 02.01.2012