0

似乎我无法从系统偏好设置窗格中控制 NSApp 委托,这是可以理解的。有没有其他方法可以在程序激活时通知我的对象?

4

2 回答 2

4

Cocoa 框架中的大多数委托方法都是简单的通知方法。这包括application{Will,Did}{Become,Resign}Active:,它们是 的通知方法NSApplication{Will,Did}{Become,Resign}ActiveNotification。通知与委托方法位于同一位置:NSApplication 文档

因此,只需在本地注册这些通知NSNotificationCenter

于 2008-11-28T23:16:19.860 回答
3

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;
于 2008-11-28T22:11:13.800 回答