編集が発生するたびに通知をリッスンするように登録している NSWindowController の複数のインスタンスがあります。
windowcontroller の 1 つのインスタンスから何かを編集すると、通知が投稿され、その NSWindowcontroller のすべてのインスタンスがその通知をリッスンしますが、詳細を更新したインスタンスだけがリッスンするようにします。
どうすればそれを達成できますか?
編集が発生するたびに通知をリッスンするように登録している NSWindowController の複数のインスタンスがあります。
windowcontroller の 1 つのインスタンスから何かを編集すると、通知が投稿され、その 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];