代码正确时,UILabel中的Delete键无效

时间:2012-11-27 19:13:22

标签: iphone objective-c ios uilabel

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

.h

IBOutlet UILabel *display;

的.m

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

它没有错误并且在模拟器中完美运行但实际上并不起作用。任何人都可以提供帮助。

2 个答案:

答案 0 :(得分:2)

-substringToIndex:创建一个字符串的一部分副本。

你在这里创造了这样一个字符串,并且不做任何事情。

我怀疑你想把这个字符串分配给某个东西,比如display.text属性:

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

答案 1 :(得分:1)

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

你想要这样的东西:

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

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