NSApplication делегат и панели предпочтений - PullRequest
0 голосов
/ 29 ноября 2008

Кажется, что я не могу управлять делегатом NSApp из панели системных настроек, что понятно. Есть ли другой способ, которым я могу уведомить мой объект, когда программа становится активной?

Ответы [ 2 ]

4 голосов
/ 29 ноября 2008

Большинство методов делегатов в платформах Какао являются просто методами уведомления. Это включает application{Will,Did}{Become,Resign}Active:, которые являются методами уведомления для NSApplication{Will,Did}{Become,Resign}ActiveNotification. Уведомления находятся в том же месте, что и методы делегата: документация NSApplication .

Итак, просто подпишитесь на эти уведомления на местном NSNotificationCenter.

3 голосов
/ 29 ноября 2008

NSPreferencePane предоставляет вам несколько методов, которые вы можете переопределить, чтобы реагировать на изменения. В частности, mainViewDidLoad: дает вам возможность выполнить инициализацию, когда ваша панель настроек становится активной впервые.

Если вы действительно хотели отслеживать, когда окно системных настроек становится основным или ключевым, вы можете подписаться на уведомления NSWindow для этих событий.

//  These messages get sent to the a preference panel just before and
//  just after it becomes the currently selected preference panel.
- (void) willSelect;
- (void) didSelect;

//  The willUnselect message gets sent to the currently selected preference panel
//  just before and just after it gets swapped out for another preference panel
- (void) willUnselect;
- (void) didUnselect;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...