0

初学者问题:

有代表字母 a、e 和 i 的三个按钮。按下按钮时,相应的字母应显示在标签中。因此,当每个按钮按下一次时,标签会显示“aei”。下面附上我的代码。现在按三下按钮时,标签只显示最后按下的按钮字母。我究竟做错了什么?感谢您的帮助!


#import "SecondViewController.h"


NSMutableString *stringLabel;


@interface SecondViewController ()
@end

@implementation SecondViewController




-(IBAction)type_a:(id)sender;{
[stringLabel appendString: @"a"];
NSLog(@"stringLabel is set to: %@", stringLabel);
label.text = stringLabel;


}

-(IBAction)type_e:(id)sender;{
[stringLabel appendString: @"e"];
NSLog(@"stringLabel is set to: %@", stringLabel);
label.text = stringLabel;


}

-(IBAction)type_i:(id)sender;{
[stringLabel appendString: @"i"];
NSLog(@"stringLabel is set to: %@", stringLabel);
label.text = stringLabel;


}
4

2 回答 2

0

每次在您的帖子中您正在使用为标签分配值

    label.text = stringValue

通过擦除旧值分配新值

因为您必须将旧字符串与新字符串值连接起来。

将 Label 的先前值存储在 NSMutableString 中,例如

    NSMutableString *previosValue = label.text;

现在将 buttonValue 连接到 previousValue 并添加到标签

于 2013-10-28T13:30:27.953 回答
0

我不知道你在哪里初始化你的 NSMutableString 但也许你错过了这个:

stringLabel = [[NSMutableString alloc] init];

将该代码放在 viewDidLoad 中,它应该可以工作,因为您的代码是正确的。

另外,您在哪里设置标签和视图控制器之间的连接?我看不到

@property (weak, nonatomic) IBOutlet UILabel *label;

也检查一下

于 2013-10-28T13:35:49.980 回答