我有一个 NSDocument 子类,其中有两个 NSWindowController 对应于 2 个不同的 xib。
遵循基于文档的应用程序指南,我在 document.m 实现中添加了以下内容
- (void)makeWindowControllers
{
NSLog(@"in MakeWindowControllers");
MainWindowController *mainWindowController = [[MainWindowController alloc] init];
[mainWindowController autorelease];
[self addWindowController:mainWindowController];
csvWindowController = [[CSVWindowController alloc] init];
[csvWindowController autorelease];
[self addWindowController:csvWindowController];
}
问题是我希望第二个窗口控制器 csvWindowController 最初隐藏它的窗口,稍后我将显示相同的窗口实例。为此,我写了:
@implementation CSVWindowController
- (id) init {
if ( ! (self = [super initWithWindowNibName:@"CSVWindow"]) ) {
NSLog(@"CSVWindowController init failed");
return nil;
}
window = [self window];
NSLog(@"CSVWindowController init");
[window orderOut:nil]; // to hide it
NSLog(@"CSVWindowController hiding the window");
return self;
}
但是窗口在那里,出现了。
请不要我没有标记 VisibleAtLaunch,该控制台正在正确显示我的消息,即使我更改:
[window orderOut:nil]; // to hide it
to
[window orderOut:self]; // to hide it
结果是一样的,窗口出现了。
任何帮助表示赞赏,谢谢:)