I want to register to UIKeyboardDidHideNotification
that only my UIViewController is issuing.
When I do :
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:self];
I'm not getting any calls to keyboardDidHide:
and when I do :
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil];
I'm getting calls from all the other view controller as well as my own.
How can I register to the UIKeyboardDidHideNotification
raised only by a specific view controller ?
You have no way to register for a UIKeyboardDidHideNotification coming from a specific controller.
If using UIKeyboardWillHideNotification, you could check if one of the UITextView inside your controller is the first responder.
Using UIKeyboardDidHideNotification I guess you need to use delegate methods for all your UITextView and save the last one that was edited. I don't think of any other alternative.
Else, if the issue is to perform the method called by UIKeyboardDidHideNotification only on the visible controller, the solution by @sviatoslav-yakymiv works well.
Object for
UIKeyboardDidHideNotification
is alwaysnil
. Try to add observer inviewWillAppear
and remove inviewDidDisapper
methods.