2016-06-07 115 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];