2016-06-07 71 views
0

我有多个NSWindowController实例,每注册一次通知就会在发生编辑时进行监听。NS通知监听

现在,当我从windowcontroller的一个实例编辑某些内容时,通知会发布,并且该NSWindowcontroller的所有实例都会侦听该通知,但我只希望更新其详细信息的实例侦听。

我该如何做到这一点?

+0

使用NSNotificationCenter并通过类型NSWindowController,使特定实例得到更新 –

回答

1

如文档中提到的[NSNotificationCenter addObserver:selector:name:object:]方法参数object

的对象,其通知观察者想要接收;也就是 只有这个发送者发送的通知才会被传送给观察者。 如果您通过零,通知中心不会使用通知的 发件人来决定是否将其发送给观察者。

所以只要通过self作为对象。
E.G.

注册的通知:

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(someSelector:) 
               name:@"SomeNotification" 
               object:self]; // <- SELF!! 

发布通知:

[[NSNotificationCenter defaultCenter] postNotificationName:@"SomeNotification" 
                  object:self //<- SELF!! 
                  userInfo:nil];