Я надеюсь, что кто-нибудь может помочь с моей проблемой уведомления. У меня есть уведомление, которое выглядит правильно настроенным, но оно не доставлено должным образом. Я разрабатываю приложение на основе документов. Класс делегата / документа отправляет уведомление при чтении из сохраненного файла:
[[NSNotificationCenter defaultCenter] postNotificationName:notifyBsplinePolyOpened object:self];
В журнале сообщается, что эта строка появляется при каждом открытии сохраненного документа.
В классе DrawView у меня есть наблюдатели для уведомления windowOpen и уведомления об открытии файла bsplinePoly:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(mainWindowOpen:)
name:NSWindowDidBecomeMainNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(savedBspline:)
name:notifyBsplinePolyOpened
object:nil];
- (void) mainWindowOpen:(NSNotification*) note
{
NSLog(@"Window opened");
_mainWindow = [note object];
}
- (void) savedBspline:(NSNotification*) note
{
NSLog(@"savedBspline called");
NSLog(@"note is %@", [note name]);
}
Поведение странное. Когда я сохраняю и закрываю главное окно и снова открываю его, я получаю сообщение «Окно открыто», но не сообщение «сохраненоБсплайн вызван». Если я оставляю главное окно открытым и открываю ранее сохраненную сессию, я получаю сообщение «Окно открыто» и сообщение «сохраненный вызов сплайн».
Я искал онлайн-обсуждение и документацию Apple DevCenter, но я не видел этой проблемы.