2013-05-22 3 views
4

초기화 섹션 :UIKeyboardWillShowNotification 나던 작업> 6.1

[[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 
} 

의 dealloc 섹션 : 그래서 아이폰 OS에서보기를 제시 한 후 호출되지 않습니다 keyboardWillShow

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

6.1 ... iOS 6.0에서이 코드는 완벽하게 작동합니다.

+0

iPad에서만이 문제가 발생 했습니까? 아니면 iPhone 및 iPod touch에도 문제가 있습니까? – rmaddy

+0

내 코드는 dealloc을 제외하고는 내 코드와 완전히 같지만 사용하지 않습니다. 더 많은 코드를 게시 할 수 있습니까? – jturolla

+0

그것은 나를 위해 완벽하게 작동하고 있습니다, 나는 항상 그것을 사용하고 있습니다. iPad뿐만 아니라 iPhone 및 iOS 6.1.x 및 iOS 6.0에서도 작동합니다. (언제든지 관찰자를 제거하지는 않지만 대부분 매개 변수없이 대상 메소드를 사용하거나 사용하지 않습니다. (id) 오브젝트 대신에) – Toastor

답변

2

"초기화 부분"은 관찰자입니까? 예를 들어 스토리 컨트롤러의보기 컨트롤러 인 경우 - (id)initWithCoder:(NSCoder *)decoder이어야합니다.

하지만 내 생각에는 옵서버를 viewWillAppear에 설치하고 viewWillDisappear에서 제거하는 것이 좋습니다. 이렇게하면 설정 및 분리는 "균형 조정"되며보기 컨트롤러의 내용이 표시 될 때만 활성화됩니다.