Skip to content

Instantly share code, notes, and snippets.

@sdrew
Last active July 8, 2018 21:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sdrew/5230424 to your computer and use it in GitHub Desktop.
Save sdrew/5230424 to your computer and use it in GitHub Desktop.
HH:MM:SS Formatting for UITextField
- (void)viewDidLoad:(BOOL)animated {
[super viewDidLoad:animated];
self.numberFormatter = [[NSNumberFormatter alloc] init];
[self.numberFormatter setNumberStyle:NSNumberFormatterNoStyle];
[self.numberFormatter setGroupingSize:2];
[self.numberFormatter setGroupingSeparator:@":"];
[self.numberFormatter setUsesGroupingSeparator:YES];
[self.numberFormatter setMaximumFractionDigits:0];
[self.numberFormatter setMinimumIntegerDigits:6];
[self.numberFormatter setMaximumIntegerDigits:6];
NSInteger time = 10800;
NSInteger hours = (time / 3600) % 3600;
NSInteger minutes = (time / 60) % 60;
NSInteger seconds = time % 60;
self.textField.delegate = self;
self.textField.text = [self.numberFormatter stringFromNumber:@([[NSString stringWithFormat:@"%02d%02d%02d", hours, minutes, seconds] doubleValue])];
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)replacementString {
NSString *originalNumber = textField.text;
if([replacementString isEqualToString:@""]) {
originalNumber = [originalNumber stringByReplacingCharactersInRange:range withString:@""];
} else {
originalNumber = [originalNumber stringByAppendingString:replacementString];
}
originalNumber = [originalNumber stringByReplacingOccurrencesOfString:@":" withString:@""];
NSString *newString = [self.numberFormatter stringFromNumber:[NSNumber numberWithDouble:[originalNumber doubleValue]]];
self.textField.text = newString;
return NO;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment