I have a custom NSWindowController
subclass that loads a NIB file during initialization like this:
self = [super initWithNibNamed:@"myNib"];
if (self != nil) {
[self window];
}
The nib contains some custom views and some other controls. The NSWindowController
is the file's owner and at least one of the views even binds to it.
Simply, what do I have to do to close and release that window? I spend the whole day trying to figure that out and I am still clueless.
You don't unload a nib; “loading” it is simply unarchiving the objects that are archived within it. That's not a state that persists indefinitely; it's a momentary action. Once you've unarchived the object, it doesn't matter where it came from.
If you were not in a window controller, then:
close
message.releasedWhenClosed
property turned on (you can do this in IB) before you send it a close
message, or send it a release
message after the close
message.But since you are in a window controller, just send yourself a close
message.
See also “Window Closing Behavior” in the Document-Based Applications Overview (document-based apps being the main users of window controllers).