0

我刚刚开始为 iPhone 开发(我已经做了一段时间的 Android 开发人员)并且遇到了一个非常非常简单的任务的问题:更改文本标签的文本。我跟着苹果开发者教程,但是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 并且遇到了同样的问题。

谢谢。

4

2 回答 2

2

你的标签太窄了。假设在 IB 中,打开 IB 并让标签变宽。

于 2012-07-26T19:33:52.670 回答
0

省略号表示您的字符串对于它的容器来说太长了。尝试将长度属性更改为更大的值。

于 2012-07-26T19:35:04.973 回答