2016-06-07 8 views
0

У меня есть несколько экземпляров NSWindowController, который регистрируется для уведомления для прослушивания всякий раз, когда происходит изменение.NSNotification прослушивание

Теперь, когда я что-то редактирую из одного экземпляра 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];