NSWindowDidBecomeMainNotification срабатывает для ВСЕХ окон - PullRequest
2 голосов
/ 10 октября 2011

У меня есть приложение с двумя окнами - основным окном и окном настроек, которое можно открыть из меню. Я пытаюсь реализовать уведомление о том, что окно настроек становится главным окном, чтобы я мог обновлять его при открытии, однако мое уведомление срабатывает при открытии любого окна, даже другого окна.

внутри моего PrefsWindowViewController.m awakeFromNib У меня есть:

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

И в моей сделке PrefsWindowViewController.m я имею:

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

Кто-нибудь может объяснить, почему это может быть вызвано, когда другое окно, кроме моего PrefsWindow, становится главным окном?

1 Ответ

5 голосов
/ 10 октября 2011

Это потому, что вы передаете nil для параметра object:.Вместо этого перейдите в окно настроек или отметьте [notification object] == yourPrefsWindow в вашем обратном вызове.

...