我想在计算器屏幕上逐位删除一个数字,但我只能删除完整的数字。有什么方法吗?
-(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);
}
答案 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'时,它将检查此条件并逐个删除数据