Cocoa nsUserDefaultsIDChangeNotification应在…;还是根本没有?

Cocoa nsUserDefaultsIDChangeNotification应在…;还是根本没有?,cocoa,nsuserdefaults,nsnotifications,Cocoa,Nsuserdefaults,Nsnotifications,在我的应用程序中,我已在awakeFromNib中注册了NSUserDefaultsIDChangeNotification通知以及其他通知(这些通知工作正常)。我注册它,如下所示,这似乎是正确的: - (void)awakeFromNib { [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(myAction:) name:NSUserDefaultsDidCh

在我的应用程序中,我已在awakeFromNib中注册了NSUserDefaultsIDChangeNotification通知以及其他通知(这些通知工作正常)。我注册它,如下所示,这似乎是正确的:

- (void)awakeFromNib
{
    [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(myAction:) name:NSUserDefaultsDidChangeNotification object:nil];
}
而且我的操作方法的格式似乎也正确:

- (void)myAction:(NSNotifcation*)notifcation
{
    NSLog(@"foo);
}

然而,由于未知的原因,它拒绝开火。无论应用程序的默认设置有多少更改,它都不会触发一次。是我登记错了还是其他原因?过去是否有其他人遇到过此问题?

您是否尝试过使用
[NSNotificationCenter defaultCenter]
而不是工作区通知中心?

没有,但现在我会。某些通知是否需要通过共享工作区通知中心发送?大多数通知都发送到默认通知中心。共享工作区通知中心用于系统范围内的事务,如装入的卷、时区更改等。谢谢。我想我最终不会为这个特定的功能使用通知,但无论如何,这是一件好事。