3

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

-(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

4 回答 4

4

干得好,

NSString *myString = [[NSNumber numberWithFloat:result] stringValue];
myString = [myString substringToIndex:[myString length]-1];
calculatorScreen.text= myString;
于 2012-05-30T05:25:00.473 回答
3

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

string = [string substringToIndex:[string length] - 1];
于 2012-05-30T05:28:44.573 回答
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 功能,以便它可以处理一些基本问题。像往常一样,将 display 替换为您的主标签。If 函数有助于反检查您的标签是否为空“”或有负号“-”,并会自动将其替换为“0”,在这方面类似于 clear。您可以在其中运行 clear 方法。但是使用

self.display.text =@"0"; 

为了更好地澄清。

于 2012-05-31T09:08:25.633 回答
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'时,它会检查这个条件并一一删除数据

于 2012-05-30T10:13:31.730 回答