0

我有一个 NSWindowController 并像这样初始化它;

+ (MyWindowController *) sharedController
{
    static MyWindowController *singleton = nil;

    if (!singleton) singleton = [[self alloc] initWithWindowNibName: @"myWindow"];
    return singleton;
}

我展示这样的窗户;

[[MyWindowController sharedController] showWindow: nil];

现在的问题是我需要该窗口上某些控件的信息。但是如果它还没有加载,我不想加载窗口,因为那样我就可以使用默认值。我应该使用 isWindowLoaded 吗?@property 访问单例?或者这里推荐什么?(如果@property,那么也请给我只读的非原子属性。)

4

1 回答 1

0

不要将模型数据存储在视图中。让控制器(可能不是 MyWindowController,而是需要数据的控制器)拥有真实数据(如果有)并填写任何默认值。

您在 Interface Builder 中填写的任何值都应仅用于调整大小。

例如,如果我知道一个字段必须包含一个值为 ±50000 的数字,我将输入“-50000”并相应地调整该字段的大小,然后将“-50000”留在那里。实际默认值更有可能是 0 或其他值,我将拥有该值的控制器提供的值(或者,如果该字段显示模型对象的属性,我将让每个新模型提供默认值目的)。

于 2010-05-18T04:09:34.907 回答