Я форматирую текст UITextField при вводе.Код:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *newString = nil;
// format 'newString' here
[textField setText:newString];
// move cursor
return NO;
}
Но setText:
некоторое время будет зависать в главном потоке.Меньше текста, больше времени.
Итак, я попробовал следующий код, resignFirstResponder
до setText:
:
[UIView setAnimationsEnabled:NO];
[textField resignFirstResponder];
[textField setText:newString];
[textField becomeFirstResponder];
[UIView setAnimationsEnabled:YES];
Это решило проблему зависания.
Но почемубудет висетьИ если есть лучшее решение.