NSWindowController
- (id)initWithWindow:(NSWindow *)window
或者使用 - (NSString *)windowNibName
NSWindowController *controller = [[c alloc] init];
if (_windowControllers == nil) {
_windowControllers = [NSMutableArray new];
}
[_windowControllers addObject:controller];
[controller showWindow:self];//显示Window,self 为NSWindowController
[controller release];
注册窗口关闭通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_windowClosed:) name:NSWindowWillCloseNotification object:nil];
处理关闭窗口通知,移出不需要的Window
- (void)_windowClosed:(NSNotification *)note {
NSWindow *window = [note object];
for (NSWindowController *winController in _windowControllers) {
if (winController.window == window) {
[[winController retain] autorelease]; // Keeps the instance alive a little longer so things can unbind from it
[_windowControllers removeObject:winController];
break;
}
}
}


Leave a comment