13

UITextField入力中にテキストの値を変更するにはどうすればよいですか?

つまり:

1 と入力すると 1 と表示されるはずです

10 と入力すると、10 と表示されるはずです

100 と入力すると 100 と表示されるはずですが、

1000 と入力すると、1,000 と表示されるはずです

アイデアをいただけますか?

4

5 に答える 5

4
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init] ;
    if([string length]==0)
    {
        [formatter setGroupingSeparator:@","];
        [formatter setGroupingSize:4];
        [formatter setUsesGroupingSeparator:YES];
        [formatter setSecondaryGroupingSize:3];
        NSString *num = textField.text ;
        num = [num stringByReplacingOccurrencesOfString:@"," withString:@""];
        NSString *str = [formatter stringFromNumber:[NSNumber numberWithDouble:[num doubleValue]]];
        textField.text = str;
        return YES;
    }
    else {
        [formatter setGroupingSeparator:@","];
        [formatter setGroupingSize:2];
        [formatter setUsesGroupingSeparator:YES];
        [formatter setSecondaryGroupingSize:3];
        NSString *num = textField.text ;
        if(![num isEqualToString:@""])
        {
            num = [num stringByReplacingOccurrencesOfString:@"," withString:@""];
            NSString *str = [formatter stringFromNumber:[NSNumber numberWithDouble:[num doubleValue]]];
            textField.text = str;
            NSLog(@"add:%@",str);
        }
        return YES;
    }
}

PSこのコードは にARCあります。非アーク環境でのメモリ管理に注意してください。

于 2013-09-18T05:37:07.963 に答える