【问题标题】:Add text to UItextField without erasing old text在不删除旧文本的情况下向 UItextField 添加文本
【发布时间】:2014-07-17 14:43:11
【问题描述】:

我有一个UItextField,我想在其中显示一个数组的内容。 所以我尝试了类似的方法(然后我意识到这显然行不通):

for (NSInteger i=0; i<myArray.count; i++) {
    [self.myTextField setText:myArray[i] ];
}

所以,正如您可能猜到的那样,这段代码只是在我的文本字段中显示我的数组的最后一个元素。

我的问题:是否可以在不删除已经存在的内容的情况下编辑文本字段的内容?

非常感谢您的回答!

【问题讨论】:

  • 将来,请先尝试做一些额外的研究。您可以说这是一个非常简单/基本的解决方案,当您在 32 秒内获得 4 个答案时,它可能在很多地方都存在。

标签: ios objective-c textfield


【解决方案1】:

试试:

[self.myTextField setText:[[self.myTextField text] stringByAppendingString:myArray[i]]];

【讨论】:

  • 没问题。不要忘记将其标记为其他人的答案。 :-)
【解决方案2】:

有很多方法可以做到这一点。 使用现有方法的一种方法是

for (NSInteger i = 0; i < myArray.count; i++) {

    self.myTextField.text = [NSString stringWithFormat:@"%@ %@", self.myTextField.text, myArray[i]];

}

【讨论】:

    【解决方案3】:

    不是每次迭代都设置到您的字段,而是将数组内容附加到一个可变字符串并在最后将该字段设置为该字符串。如果您想采用不同的格式,您可能需要根据需要附加空格或换行符。

    NSMutableString *arrayContentsString = [[NSMutableString alloc] init];
    
    for (NSInteger i = 0; i < myArray.count; i++) {
        [arrayContentsString appendString:myArray[i]];
    }
    
    [self.myTextField setText:arrayContentsString];
    

    【讨论】:

      【解决方案4】:

      如果您只想将文本附加到现有文本,您可以这样做:

      for (NSInteger i = 0; i < myArray.count; i++) {
          [self.myTextField setText:[self.myTextField.text stringByAppendingString:myArray[i]]];
      }
      

      【讨论】:

        【解决方案5】:

        我没有调试这个,如果它不起作用,请原谅我。

        for (NSInteger i = 0; i < myArray.count; i++) {
            self.myTextField.text = [self.myTextField.text stringByAppendingString:myArray[i]];
        }
        

        【讨论】:

          【解决方案6】:

          NSArray 有一个名为 componentsJoinedByString' 的方法,它返回一个 NSString 对象,该对象是在数组元素之间插入给定分隔符的结果。

          NSString *string = [myArray componentsJoinedByString:@" "];
          [self.myTextField setText:string];
          

          【讨论】:

            【解决方案7】:

            尝试快速枚举会更快:-

            for (NSString *str in  myArray)
            {
                self.myTextField.text = [self.myTextField.text stringByAppendingString:str];
            }
            

            【讨论】:

              【解决方案8】:

              快速回答:

              self.myTextField.text = self.myTextField.text?.stringByAppendingString(" ★")
              

              【讨论】:

                猜你喜欢
                • 2018-10-22
                • 1970-01-01
                • 2013-07-12
                • 2017-03-30
                • 1970-01-01
                • 2017-07-31
                • 1970-01-01
                • 2012-09-16
                • 1970-01-01
                相关资源
                最近更新 更多