我正在尝试创建一个评论页面,我正在使用UITextView为空间添加评论,并使用UILabel来打印评论。我想知道如何让评论“粘在”页面上?目前,每次在UITextView中输入新内容时,它都会被重写。非常感谢!
EDIT2:
这是我的代码......我需要将数据存储在某些服务器上吗?
在我的标题文件中:
{
IBOutlet UITextView *commentBox;
IBOutlet UILabel *commentsDisplay;
}
-(IBAction)submit;
在我的实施文件中:
-(IBAction)submit{
NSMutableString *tmpStr = [[NSMutableString alloc]initWithString:commentsDisplay.text];
[tmpStr stringByAppendingString:[NSString stringWithFormat:@"%@", commentBox.text]];
[commentsDisplay setText:tmpStr];
commentBox.text = @"";
[commentBox resignFirstResponder];
}
答案 0 :(得分:1)
我的开始建议是,不要使用视图(UILabel)作为数据的主存储位置。
创建一个NSMutableString
属性来保存评论(或者可能是NSMutableArray
个字符串),并且每当有提交操作时,将新字符串添加到之前的字符串中......然后显示该字符串。如果您使用单个字符串,请查看appendString:
。如果使用数组,则将新条目添加为数组中的对象。 (我喜欢数组的想法,因为它允许选择要显示的注释数量。)
简单地说,这样做会使屏幕更新看起来更像您想要的,并且将数据与屏幕元素分开,这样可以更轻松地在应用程序的启动之间进行保存,如果您打算这样做。
答案 1 :(得分:0)
而不是:
commentsDisplay.text = [NSString stringWithFormat:@"%@",[commentBox text]];
这样做:
NSMutableString *tmpStr = [[[NSMutableString alloc]initWithString:commentsDisplay.text]autorelease];
[tmpStr stringByAppendingString:[NSString stringWithFormat:@"\n%@", commentBox.text]];
[commentsDisplay setText:tmpStr];
这样您就可以将提交的文本附加到现有文本中......
...并且不要忘记将您的标签设置为多行标签(您可以在Interface Builder中进行此设置)。