There is a delegate method called
textFieldDidBeginEditing:(UITextField*) tf{ tf.startedEdinting = YES; } textFeildDidEndEditing: (UITextField*) tf { tf.startedEditing = NO; }
Add startEditing to categories in UITextField.
Then, if the value changes the field:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if (textField.startEditing){ textField.text = string; } else { textField.text = [textField.text stringByReplacingCharactersInRange:range withString:string]; } }
You can add a property to the UITextField category as follows:
.h
@property (nonatomic, assign) BOOL startEditing;
.m
@dynamic startEditing; - (void) setStartEditing:(BOOL)startEditing_in{ NSNumber* num = [NSNumber numberWithBool:startEditing_in]; objc_setAssociatedObject(self, myConstant, num, OBJC_ASSOCIATION_RETAIN_NONATOMIC); } - (BOOL) startEditing{ NSNumber* num = objc_getAssociatedObject(self, myConstant); return [num boolValue]; }
source share