Remove NSNotificationCenter observer

11,189

Solution 1

[[NSNotificationCenter defaultCenter] removeObserver:self 
                                                name:UIKeyboardDidHideNotification 
                                              object:nil];

[[NSNotificationCenter defaultCenter] removeObserver:self 
                                                name:UIKeyboardWillShowNotification 
                                              object:nil];

Solution 2

Use the removeObserver:name:object: method of NSNotificationCentre as described in the official documentation, to remove an observer for a particular notification name.

Solution 3

Use [[NsNotificationCenter defaultCenter] removeObserver:self name: UIKeyboardWillShowNotification object:nil]

Share:
11,189
user2014474
Author by

user2014474

Updated on June 18, 2022

Comments

  • user2014474
    user2014474 about 2 years

    I am detecting the showing/hiding of the keyboard by adding this code in the ViewDidLoad:

    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(keyboardDidHide:) 
                                                 name:UIKeyboardDidHideNotification 
                                               object:nil];
    
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(keyboardWillShow:) 
                                                 name:UIKeyboardWillShowNotification 
                                               object:nil];
    

    At some point though I want to remove these observers, without calling

     [[NSNotificationCenter defaultCenter] removeObserver:self];
    

    because this removes all observers, and I have other observers that I don't want to be removed. How can I remove only those two??