2011-10-10 3 views
1

두 개의 창 - 주 창과 메뉴 모음에서 열 수있는 환경 설정 창이있는 응용 프로그램이 있습니다. 나는 환경 설정 윈도우가 메인 윈도우가되도록 알림을 구현하려고하는데, 오픈 될 때 업데이트 할 수있다.하지만, 어떤 윈도우가 열릴 때마다, 심지어 다른 윈도우도 열리게된다.모든 창에 대해 NSWindowDidBecomeMainNotification 발사

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(didBecomeMain:) 
              name:NSWindowDidBecomeMainNotification 
              object:nil]; 

을 그리고 내 PrefsWindowViewController.m의 할당 해제에, 나는이 : 내 PrefsWindowViewController.m로 awakeFromNib 내부

내가 가진

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

이 사람이이 때 다른 창 호출되는 이유를 설명 할 수 게다가 내 PrefsWindow가 메인 윈도우가됩니까?

답변

4

object: 매개 변수에 nil을 전달했기 때문입니다. 대신 기본 설정 창을 전달하거나 콜백에 [notification object] == yourPrefsWindow을 확인하십시오.

+0

정말 고마워. 지금은 분명해 보이지만, 객체를 nil 대신에 [self window]로 설정하면 효과가있었습니다. 나는이 질문/답변이 다른 누군가를 도울 수 있기를 바랍니다 ... – Jackson