4

初期セクション:

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

いくつかの方法:

- (void) keyboardWillShow:(NSNotification*) aNotification {
// TO DO 
}

セクションの割り当て解除:

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

そのため、iOS 6.1 でビューを表示した後、keyboardWillShow は呼び出されません... iOS 6.0 では、このコードは完全に機能します。

4

1 に答える 1

2

オブザーバーが追加されているのはどの「initセクション」ですか? たとえば、View Controller がストーリーボードからのものである場合は、- (id)initWithCoder:(NSCoder *)decoder.

ただし、オブザーバーを でセットアップし、viewWillAppearで削除することをお勧めしviewWillDisappearます。こうすることで、セットアップと分解が「バランス」され、View Controller のコンテンツが表示されている場合にのみアクティブになります。

于 2013-05-22T22:17:18.833 に答える