【问题标题】:Contents of UITextField and UITextView to NSStringUITextField 和 UITextView 的内容到 NSString
【发布时间】:2009-05-27 17:42:57
【问题描述】:

我设置了一个 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*];

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

干杯

(已编辑)

【问题讨论】:

    标签: iphone nsstring uitextfield uitextview


    【解决方案1】:

    UITextField 和 UITextView 都有一个 text 属性,您可以使用它来检索字符串值。例如,

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

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

    【讨论】:

      【解决方案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 属性的功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多