2012-10-23 83 views
3

在單聲道我有一個簡單的NSWindow與控制器在它上我放下NSSplitView和NSButton。NullReferenceException當訪問控制器構造函數中的GUI組件

如果我試圖從Contstructor或Initialize()訪問NSSplitView方法,我得到一個nullReferenceException。相反,如果我嘗試從ButtonClicked方法訪問NSSplitView,它會起作用。

好吧,看起來Framework在調用控制器的Construtor之後創建GUI組件。但是如果不在構造器中,我應該在哪裏放置我的代碼來配置GUI組件?

在此先感謝。 Johannes

回答

4

您應該在控制器類中使用AwakeFromNib方法。一旦所有對象都被加載並正確連接,就會調用它。

public override void AwakeFromNib() 
{ 
    base.AwakeFromNib(); 

    // Do something here with the outlets 
} 
0

您應該使用

public override void ViewDidLoad() { 
    base.ViewDidLoad(); 
} 

配置您的觀點,因爲這只是加載視圖時被調用的方法,而不是當你實例化的控制器。如果你在配置你的視圖,你會強制實例化你的視圖,而你現在可能不需要它們。事實上,當你創建一個控制器時,視圖不會被創建,直到有人試圖訪問viewController.View。

相關問題