0

我正在尝试创建一个评论页面,我使用 UITextView 作为添加评论的空间,使用 UILabel 作为打印评论的地方。我想知道如何使评论“粘贴”在页面上?目前,每次在 UITextView 中输入新内容时,它都会不断被重写。非常感谢!

编辑2:

这是我的代码......我需要将数据存储在某个服务器上吗?

在我的头文件中:

{
    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];

    }
4

2 回答 2

1

我的开始建议是,不要使用视图(UILabel)作为数据的主要存储位置。

创建一个NSMutableString属性来保存评论(或者可能是一个NSMutableArray字符串),并且每当有提交操作时,将新字符串添加到您之前的内容中......然后显示它。如果您为此使用单个字符串,请查看appendString:. 如果您使用数组,则将新条目作为对象添加到数组中。(我喜欢数组的想法,因为它允许选择显示多少评论。)

简单地这样做应该会让屏幕更新看起来更像你想要的,并且如果你打算这样做的话,将数据与屏幕元素分开可以更容易地在你的应用程序启动之间保存。

于 2012-08-02T14:21:45.370 回答
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 中进行此设置)。

于 2012-08-02T15:00:54.343 回答