在不删除旧文本的情况下向UItextField添加文本

时间:2014-07-17 14:43:11

标签: ios objective-c textfield

我有UItextField,我想在其中显示数组的内容。 所以我尝试了类似的东西(然后我意识到它显然不会有效):

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

因此,正如您可能猜到的,此代码只在我的文本字段中显示数组的最后一个元素。

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

非常感谢您的回答!

8 个答案:

答案 0 :(得分:1)

尝试:

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

答案 1 :(得分:1)

有很多方法可以做到这一点。 使用现有方法执行此操作的一种方法是

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

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

}

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

NSMutableString *arrayContentsString = [[NSMutableString alloc] init];

for (NSInteger i = 0; i < myArray.count; i++) {
    [arrayContentsString appendString:myArray[i]];
}

[self.myTextField setText:arrayContentsString];

答案 4 :(得分:0)

如果您只想将文本附加到现有文本,则可以执行以下操作:

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

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

尝试快速枚举它会更快: -

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

答案 7 :(得分:0)

快速回答:

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