您应该使用NSWindowController
子类。NSWindowController
专门设计用于完成您想要实现的目标,并解决了如果您直接使用NSBundle
. 您通常应该始终使用NSWindowController
子类来管理窗口。
创建一个子类NSWindowController
:
@interface MyWindowController : NSWindowController {}
@end
@implementation MyWindowController
- (id)init
{
self = [super initWithWindowNibName:@"MyWindow"];
if(self)
{
//initialize stuff
}
return self;
}
//this is a simple override of -showWindow: to ensure the window is always centered
-(IBAction)showWindow:(id)sender
{
[super showWindow:sender];
[[self window] center];
}
@end
在 Interface Builder 中,将 File's Owner 的类设置为,并将File's Owner的出口连接MyWindowController
到您的 nib 中的窗口对象。window
然后,您可以通过执行以下操作来显示窗口:
MyWindowController* controller = [[MyWindowController alloc] init];
[controller showWindow:self];