Cocoa document-based app: Notification not always received by observer
Posted
by roysolay
on Stack Overflow
See other posts from Stack Overflow
or by roysolay
Published on 2010-04-26T18:57:05Z
Indexed on
2010/04/26
19:03 UTC
Read the original article
Hit count: 272
Hi, I hope somebody can help with my notification problem. I have a notification which looks to be set up correctly but it isn’t delivered as expected. I am developing a document based app. The delegate/ document class posts the notification when it reads from a saved file:
[[NSNotificationCenter defaultCenter] postNotificationName:notifyBsplinePolyOpened object:self];
Logging tells me that this line is reached whenever I open a saved document.
In the DrawView class, I have observers for the windowOpen notification and the bsplinePoly file open notification:
[[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]);
}
The behavior is odd. When I save and close the main window and reopen it, I get the “Window opened” message but not the “savedBspline called” message. If I leave a main window open and open a previously saved session, I get the “Window opened” message and the “savedBspline called” message.
I have searched online discussion and Apple DevCenter documentation but I have not seen this problem.
© Stack Overflow or respective owner