UITextField
入力中にテキストの値を変更するにはどうすればよいですか?
つまり:
1 と入力すると 1 と表示されるはずです
10 と入力すると、10 と表示されるはずです
100 と入力すると 100 と表示されるはずですが、
1000 と入力すると、1,000 と表示されるはずです
アイデアをいただけますか?
UITextField
入力中にテキストの値を変更するにはどうすればよいですか?
つまり:
1 と入力すると 1 と表示されるはずです
10 と入力すると、10 と表示されるはずです
100 と入力すると 100 と表示されるはずですが、
1000 と入力すると、1,000 と表示されるはずです
アイデアをいただけますか?
- (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
あります。非アーク環境でのメモリ管理に注意してください。