我刚刚开始为iPhone开发(我已经很长时间以来一直是Android开发人员)并且遇到了一个非常简单的任务问题:更改文本标签的文本。我遵循了Apple开发人员教程,但是NSString的initWithFormat方法存在问题。
问题出在这个方法中:
-(IBAction)changeGreeting:(id)sender {
self.userName = self.textField.text;
NSString *nameString = self.userName;
if ([nameString length] == 0) {
nameString = @"World";
}
NSString *greeting = [[NSString alloc] initWithFormat:@"Hello, %@!", nameString];
self.label.text = greeting;
}
当我运行项目时,textField中是否有值,标签总是设置为Hello,...
当我将方法的最后一行更改为:
self.label.text = self.userName;
或者:
self.label.text = nameString;
标签显示应该在initWithFormat调用中插入%@的值。注意:我也尝试过使用stringWithFormat,我也遇到了同样的问题。
感谢。
答案 0 :(得分:2)
您的标签太窄了。假设它在IB中,打开IB并使标签更宽。
答案 1 :(得分:0)
省略号表示您的字符串对于它的容器来说太长了。尝试将长度属性更改为更大的属性。