- (IBAction) press:(id)sender {
[[UIDevice currentDevice] playInputClick];
if (sender == AEE) {
self.BACK.hidden = NO;
A = @"A";
NSLog(@"sender:%@",sender);
}
if (sender == BEE) {
self.BACK.hidden = NO;
A = @"B";
}
if (sender == CEE) {
self.BACK.hidden = NO;
A = @"C";
}
if (sender == DEE) {
self.BACK.hidden = NO;
A = @"D";
}
if (sender == EEE) {
self.BACK.hidden = NO;
A = @"E";
}
if (sender == EFF) {
self.BACK.hidden = NO;
A = @"F";
}
if (sender == ONE) {
self.BACK.hidden = NO;
A = @"1";
}
if (sender == TWO) {
self.BACK.hidden = NO;
A = @"2";
}
if (sender == THREE) {
self.BACK.hidden = NO;
A = @"3";
}
if (sender == FOUR) {
self.BACK.hidden = NO;
A = @"4";
}
if (sender == FIVE) {
self.BACK.hidden = NO;
A = @"5";
}
if (sender == SIX) {
self.BACK.hidden = NO;
A = @"6";
}
if (sender == SEVEN) {
self.BACK.hidden = NO;
A = @"7";
}
if (sender == EIGHT) {
self.BACK.hidden = NO;
A = @"8";
}
if (sender == NINE) {
self.BACK.hidden = NO;
A = @"9";
}
if (sender == ZERO) {
self.BACK.hidden = NO;
A = @"0";
}
if (display.length <= 7) {
[self.display appendString:A];
DONE.hidden = YES;
}
if (display.length == 8) {
DONE.hidden = NO;
}
else {
[self.display appendString:@""];
}
//**THIS IS WHERE I DELETE CHARATERS**
if (sender == BACK) {
[display deleteCharactersInRange:NSMakeRange([display length]-2, 2)];
NSLog(@"display2:%@", display);
if (self.display.length <1) {
BACK.hidden = YES;
}
if (display.length < 8) {
DONE.hidden = YES;
}
}
you.text = display;
}
에서 텍스트 뷰에 넣어 다음 코드를 사용하고
에서 문자를 삭제 모든 문자 1 - 7에 대해 잘 작동합니다. 백 스페이스 버튼을 눌러도 문자 하나가 삭제됩니다. 그러나 백 스페이스 단추를 눌러 8 자로 된 문자를 삭제하면 두자를 삭제합니다.
[display deleteCharactersInRange:NSMakeRange([display length]-1, 1)];
과 같이 한 문자 만 삭제하도록 코드를 변경하면 문자 한 번만 삭제됩니다. 그리고 넣어두면
[display deleteCharactersInRange:NSMakeRange([display length]-1, 2)];
도 마찬가지입니다. 하지만 넣어 때
[display deleteCharactersInRange:NSMakeRange([display length]-2, 1)];
내 응용 프로그램이 충돌하고 한계 초과 오류가 발생합니다. 나는 디스플레이 = < 7을 사용하려고 시도했다. -2,2 코드를 사용하고 디스플레이 == 8은 -1,1 코드를 사용하지만 아무 것도 항상 문자 수를 줄이지는 않는다. 누구든지 어떤 제안이 있습니까? (ID) 보낸 사람 { [[UIDevice currentDevice] playInputClick :