【发布时间】:2011-05-20 11:54:21
【问题描述】:
我有一个 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
结果是一样的,窗口出现了。
感谢任何帮助,谢谢:)
【问题讨论】:
标签: objective-c nswindow nsdocument nswindowcontroller