7

ViewDidLoad に次のコードを追加して、キーボードの表示/非表示を検出しています。

[[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];

これによりすべてのオブザーバーが削除され、削除したくない他のオブザーバーがいるからです。この2つだけを削除するにはどうすればよいですか??

4

3 に答える 3

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

[[NSNotificationCenter defaultCenter] removeObserver:self 
                                                name:UIKeyboardWillShowNotification 
                                              object:nil];
于 2013-02-02T13:25:31.533 に答える
1

特定の通知名のオブザーバーを削除するには、公式ドキュメントに記載されているremoveObserver:name:object:方法を使用します。NSNotificationCentre

于 2013-02-02T13:31:10.337 に答える
1

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

于 2013-02-02T13:31:20.273 に答える