1

我正在创建一个计算器应用程序,计算器屏幕是一个 UILabel。我在使用删除键时遇到问题。这是我的代码:

。H

IBOutlet UILabel *display;

.m

- (IBAction)Del 
{
    [display.text substringToIndex:display.text.length -1];
}

它没有错误并且可以在模拟器中完美运行,但实际上并不能正常工作。任何人都可以帮忙。

4

2 回答 2

2

-substringToIndex:创建它要发送到的字符串的一部分的副本。

您在这里所拥有的内容创建了这样一个字符串,并且对它没有任何作用。

我怀疑您想将该字符串分配给某些东西,例如display.text属性:

- (IBAction)Del {
    display.text = [display.text substringToIndex:display.text.length -1];
}
于 2012-11-27T19:15:37.750 回答
1

您忽略了该substringToIndex:方法的返回值,并且您没有更新标签的文本。

你想要这样的东西:

- (IBAction)Del {
    NSString *oldText = display.text;
    if (oldText.length > 0) {
        NSString *newText = [oldText substringToIndex:oldText - 1];
        display.text = newText;
    }
}

这也可以防止尝试从空标签中删除。

于 2012-11-27T19:15:52.187 回答