0
我有多個NSWindowController實例,每註冊一次通知就會在發生編輯時進行監聽。NS通知監聽
現在,當我從windowcontroller的一個實例編輯某些內容時,通知會發布,並且該NSWindowcontroller的所有實例都會偵聽該通知,但我只希望更新其詳細信息的實例偵聽。
我該如何做到這一點?
我有多個NSWindowController實例,每註冊一次通知就會在發生編輯時進行監聽。NS通知監聽
現在,當我從windowcontroller的一個實例編輯某些內容時,通知會發布,並且該NSWindowcontroller的所有實例都會偵聽該通知,但我只希望更新其詳細信息的實例偵聽。
我該如何做到這一點?
如文檔中提到的[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];
使用NSNotificationCenter並通過類型NSWindowController,使特定實例得到更新 –