2010-05-17 57 views
0

我有一個NSWindowController,我像這樣初始化它;NSWindowController和isWindowLoaded

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

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

我顯示了這樣的窗口;

[[MyWindowController sharedController] showWindow: nil]; 

現在問題是我需要從該窗口上的一些控件的信息。但如果它尚未加載,我不想加載該窗口,因爲那樣我就可以使用默認值。我應該使用isWindowLoaded? @屬性來訪問單身人士?或者這裏推薦什麼? (如果@屬性,那麼請給我只讀,非原子屬性。)

回答

0

不要將模型數據存儲在視圖中。讓控制器(可能不是MyWindowController,但需要數據的那個)擁有真實數據(如果有的話)並填寫任何默認值。

在界面生成器中填寫的任何值都只能用於確定大小。

例如,如果我知道一個字段必須持有數量,其值爲±50000,我會相應地進入「-50000」和字段大小,並留下了「-50000」在那裏。實際的默認值更可能是0或某些東西,並且我將擁有由擁有該值的控制器提供的值(或者,如果該字段顯示模型對象的屬性,我將使用每個新模型提供的默認值目的)。

+0

謝謝。通過一些控件的信息,我的意思是像複選框的狀態(只是爲了確保)..我不太明白你想對我說什麼。我應該在IB中有一個對象而不是NSWindowController連接到該對象的接口元素? – Jim 2010-05-18 14:11:48

相關問題