In UITextView
there is a Changed event to handle keypress. However the UITextField
has not such event.
How can I detect a KeyPress event in UITextField
?
There is a method described here using notifications, however the problem I have is that I cannot unsubscribe from the TextFieldTextDidChangeNotification.
Look at the UITextFieldDelegate
http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html
Implement that protocol. It has call back methods for all the text field changes.
I'm not sure which is your question. The first one you seem to have answered yourself, i.e. the solution (from your link) is to use
NSNotificationCenter.DefaultCenter.AddObserver
.The second is about unsubscribing - if you want to stop observing you should call the previous method counterpart, i.e.
NSNotificationCenter.DefaultCenter.RemoveObserver
.Just keep the object returned from
AddObserver
so you can supply it toRemoveObserver
.note: If I did not understand your question correctly please use edit and add some details and/or code of what you want to achieve and we'll do our best to help :-)
As colinta suggested, do this
and
It will also work if the input was changed via spelling suggestions.
The cleanest way to observe
UITextField
changes isYou don't have to subscribe to a system-wide notification center and you don't have to unregister observer when you're destroing a text field.
Hope this will help someone in the future :)