在计算器屏幕上逐位删除数字

时间:2012-05-30 05:16:44

标签: iphone ios xcode xcode4

我想在计算器屏幕上逐位删除一个数字,但我只能删除完整的数字。有什么方法吗?

-(IBAction)cancelInput:(float)result1{

        NSString *myString = [[NSNumber numberWithFloat:result] stringValue];
        int str=[myString length]-1;
        NSString *newstring = [[NSNumber numberWithInt:str] stringValue];
        calculatorScreen.text= [NSString stringWithFormat:newstring];
        //NSLog(@"%d ",str);
}

4 个答案:

答案 0 :(得分:4)

你走了,

NSString *myString = [[NSNumber numberWithFloat:result] stringValue];
myString = [myString substringToIndex:[myString length]-1];
calculatorScreen.text= myString;

答案 1 :(得分:3)

int str = [myString length] -1只返回字符串的长度,比如你的号码是9876,它会返回3(4-1),你的新闻字符串将是3.如果你想删除最后一个字符你必须创建myString的子字符串。

string = [string substringToIndex:[string length] - 1];

答案 2 :(得分:1)

-(IBAction)backPressed:(UIButton *)sender
{
self.display.text=[self.display.text substringToIndex:[self.display.text length]-1];
if ( [self.display.text isEqualToString:@""] || [self.display.text isEqualToString:@"-"])
{
self.display.text =@"0";
}

}

这是按钮的核心功能。我冒昧地添加if功能,以便它可以处理一些基本问题。像往常一样,用主标签替换显示。 If函数有助于反击检查您的标签是否为空“或”具有否定符号“ - ”并自动将其替换为“0”,类似于该方面的清除。您可以在其中运行clear方法。但是使用

self.display.text =@"0"; 

为了更好地澄清。

答案 3 :(得分:0)

使用此代码:

else if([character isEqualToString:(NSString*) Delete])
{
    NSInteger index_of_char_to_remove=[_display length]-1;
    if(index_of_char_to_remove>=0)
    {
        [_display deleteCharactersInRange:NSMakeRange(index_of_char_to_remove, 1)];
        last_character_is_operator=NO;
    }
}

当按'C'时,它将检查此条件并逐个删除数据