1

編集が発生するたびに通知をリッスンするように登録している NSWindowController の複数のインスタンスがあります。

windowcontroller の 1 つのインスタンスから何かを編集すると、通知が投稿され、その NSWindowcontroller のすべてのインスタンスがその通知をリッスンしますが、詳細を更新したインスタンスだけがリッスンするようにします。

どうすればそれを達成できますか?

4

1 に答える 1

2

[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];
于 2016-06-07T07:42:35.067 に答える