我想在计算器屏幕上逐个数字删除一个数字,但我只能删除完整的数字。有什么方法吗?
-(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);
}
你来了,
NSString *myString = [[NSNumber numberWithFloat:result] stringValue];
myString = [myString substringToIndex:[myString length]-1];
calculatorScreen.text= myString;
str=[myString length]-1 只会返回字符串的长度,比如说如果你的数字是 9876,它将返回 3(4-1),你的新字符串将是 3.如果你想删除最后一个字符,你必须创建 myString 的子字符串。
string = [string substringToIndex:[string length] - 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";
为了更好地澄清。
使用以下代码:
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"时,它将检查此条件并逐个删除数据