I would like to be able to detect if some text is changed in a UITextField
so that I can then enable a UIButton
to save the changes.
Take advantage of the UITextFieldTextDidChange
notification or set a delegate on the text field and watch for textField:shouldChangeCharactersInRange:replacementString
.
If you want to watch for changes with a notification, you'll need something like this in your code to register for the notification
:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldDidChange:) name:UITextFieldTextDidChangeNotification object:theTextField];
Here theTextField is the instance of UITextField
that you want to watch. The class of which self is an instance in the code above must then implement textFieldDidChange
, like so:
- (void)textFieldDidChange:(NSNotification *)notification {
// Do whatever you like to respond to text changes here.
}
If the text field is going to outlive the observer
, then you must deregister for notifications in the observer's dealloc
method. Actually it's a good idea to do this even if the text field does not outlive the observer.
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
// Other dealloc work
}