Я реализую это в своем коде, и оно работает:
Этот код исключает все буквы, принимает только цифры, но, как я удаляю символ, вы можете удалить все, что превышает 5, и он сохраняет приятный эффект, который появляется и исчезает
- (void)textFieldDidBeginEditing:(UITextField *)textField {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:UITextFieldTextDidChangeNotification object:textField];
}
- (void)textChanged:(NSNotification *)textField {
NSString *text = [[textField object] text];
NSString *last = [text substringFromIndex:[text length] -1];
NSArray *accept = [NSArray arrayWithObjects:@"0", @"1", @"2", @"3", @"4", @"5", @"6", @"7" , @"8", @"9", @".", nil];
for (int i=0; i<[accept count]; i++) {
NSLog(@"%@", [accept objectAtIndex:i]);
if (![last isEqualToString:[accept objectAtIndex:i]]) {
[[textField object] setText:[text substringToIndex:[text length]-1]];
}
}
}