3

Monoでは、コントローラーを備えた単純なNSWindowがあり、NSSplitViewとNSButtonをドロップします。

ContstructorまたはInitialize()MethodからNSSplitViewにアクセスしようとすると、nullReferenceExceptionが発生します。代わりに、ButtonClickedメソッドからNSSplitViewにアクセスしようとすると、機能します。

さて、フレームワークは、コントローラーのコンストラクターが呼び出された後にGUIコンポーネントを作成するようです。しかし、コンストラクターにない場合、GUIコンポーネントを構成するためのコードをどこに置くべきですか?

前もって感謝します。ヨハネス

4

2 に答える 2

4

AwakeFromNibコントローラクラスのメソッドを使用する必要があります。すべてのオブジェクトがロードされ、正しく接続されると呼び出されます。

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

    // Do something here with the outlets
}
于 2012-10-24T06:26:13.980 に答える
0

あなたは使用する必要があります

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

これは、コントローラーをインスタンス化したときではなく、ビューがロードされたときに呼び出されるメソッドであるためです。でビューを構成すると、ビューAwakeFromNib()のインスタンス化が強制されますが、現在は必要ない場合があります。実際、コントローラーを作成すると、誰かがviewController.Viewにアクセスしようとするまでビューは作成されません。

于 2013-02-20T00:09:16.640 に答える