我有多个 NSWindowController 实例,它们正在注册一个通知,以便在编辑发生时进行监听。
现在,当我从 windowcontroller 的一个实例编辑某些内容时,通知会被发布,并且该 NSWindowcontroller 的所有实例都会收听该通知,但我只希望已更新其详细信息的实例可以收听。
我怎样才能做到这一点?
我有多个 NSWindowController 实例,它们正在注册一个通知,以便在编辑发生时进行监听。
现在,当我从 windowcontroller 的一个实例编辑某些内容时,通知会被发布,并且该 NSWindowcontroller 的所有实例都会收听该通知,但我只希望已更新其详细信息的实例可以收听。
我怎样才能做到这一点?
[NSNotificationCenter addObserver:selector:name:object:]
如参数方法的文档中所述object
:
观察者想要接收其通知的对象;也就是说,只有这个发送者发送的通知才会传递给观察者。如果你传递 nil,通知中心不会使用通知的发送者来决定是否将它传递给观察者。
self
所以只是作为对象传递。
例如
注册通知:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(someSelector:)
name:@"SomeNotification"
object:self]; // <- SELF!!
发布通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"SomeNotification"
object:self //<- SELF!!
userInfo:nil];