NSWindowController - 在窗口显示之前得到通知?

时间:2012-06-17 02:41:42

标签: macos cocoa nswindowcontroller

我有一个包含在nib文件中的窗口,它由NSWindowController的自定义子类加载,如下所示:

- (id)init
{
    self = [super initWithWindowNibName:@"MyWindow"];

    return self;
}

我希望在此窗口变为可见之前初始化它们。现在我正在阅读一些用户默认值并在windowDidLoad中设置窗口的视图。但遗憾的是,只有在窗口可见后才会应用新初始化的值,导致未初始化的值非常短暂地闪烁。

windowWillLoad不起作用,因为此时尚未从nib文件加载窗口。

如何在显示窗口之前初始化窗口?

2 个答案:

答案 0 :(得分:4)

您可以使用自己的"showWindow"方法。

- (IBAction)showWindow:(id)sender
{
    // do whatever initialization 
    // or window UI setup you 
    // need to do right here
    [super showWindow: sender];
}

答案 1 :(得分:1)

- (void)awakeFromNib是进行视图设置的好地方。在对所有对象进行解档并连接出口后调用它。

更多信息in the documentation