UITextField和UITextView到NSString的内容

时间:2009-05-27 17:42:58

标签: iphone nsstring uitextfield uitextview

我有一个UITextView和2个UITextField设置。当点击屏幕的空白部分时,UITextView会重新启动第一响应者状态,对于2 UITextField也是如此,再加上这两个,返回键也会重新响应第一个响应者状态。所有3都在接口中声明。

我想将所有这些内容提供给单独的NSString和/或学习如何将它们直接输入到以下内容中:

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

这是一个非常基本的问题,我知道,但我几乎是一个新手。如果我学会了如何做到这一点,我可能会从那里拿起。

欢呼声

(编辑)的

2 个答案:

答案 0 :(得分:7)

UITextField和UITextView都有一个text属性,可用于检索字符串值。例如,

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

请记住,在将字符串放入网址之前,您可能需要检查字符串以确保它们不为空或包含无效字符。

答案 1 :(得分:2)

接受的答案很好,我只想添加以下内容,以便在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属性的功能。