




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;
Большинство методов делегата в структурах Какао - это просто методы уведомления. Это включает application{Will,Did}{Become,Resign}Active:, которые являются методами уведомления для NSApplication{Will,Did}{Become,Resign}ActiveNotification. Уведомления находятся в том же месте, что и методы делегата: документация NSApplication.
Итак, просто подпишитесь на эти уведомления на локальном NSNotificationCenter.
Никто. Вы должны задать еще один вопрос с более подробной информацией.
Спасибо, работает как шарм. Я использую это уведомление вместе с FSEvents, чтобы обновить NSTableView. Согласно моей отладке, все работает точно так, как должно, пока я не вызову setDataSource в представлении. Вид просто не обновляется. Есть идеи, что происходит?