2013-02-02 125 views
7

我加入这个代码在viewDidLoad中检测键盘的显示/隐藏:删除NSNotificationCenter观察者

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

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

在某些时候,虽然我想删除这些观察员,而不调用

[[NSNotificationCenter defaultCenter] removeObserver:self]; 

,因为这会删除所有观察者,并且我有其他观察员不希望被删除。我怎样才能删除这两个?

回答

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

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

使用[[NsNotificationCenter defaultCenter] removeObserver:self name: UIKeyboardWillShowNotification object:nil]