2

子NSViewControllerからNSWindowControllerの要素にアクセスすることは可能ですか?

基本的に、NSWindowの下隅で回転するNSProgressIndicatorがあります。これは、WebViewがNSViewControllerではなくNSWindowControllerにあるために機能します。

今すぐロジックを分解したいのですが、ViewControllerからこれらの要素にアクセスする方法を理解するのに苦労しています。

ありがとう!

4

1 に答える 1

1

あるNIBから別のNIBのオブジェクトにコンセントを接続することはできません。接続したいという希望は、設計に問題があることを示しています。ビューがウィンドウ内の他のものと非常に密接に関連している場合は、別のNIBに分離するべきではないかもしれません。

ビューは、自己完結型のユニットとして意味がある場合にのみ、別のNIBに入れる必要があります。それは、そのコントローラーを表現および操作する必要があり、それ以上のrepresentedObjectものではありません。コントローラーには、何が行われているのかを通知し、カスタマイズの決定を行うように依頼する代理人がいる場合があります。

そのような設計を採用すれば、別のNIBを引き続き使用できるかもしれません。おそらく、ウィンドウにはモデルオブジェクトへの参照があります。そのモデルオブジェクトをその表現されたオブジェクトとして使用するようにViewControllerを構成します。そして、おそらく進行状況インジケーターは同じモデルオブジェクトにバインドされます。次に、ビューがその表現されたオブジェクトを操作すると、進行状況インジケーターにも間接的に影響します。

もう1つのオプションは、ウィンドウコントローラーがそれ自体をビューコントローラーのデリゲートとして設定し、ビューコントローラーが適切なポイントでウィンドウコントローラーを呼び出して、ビューで起こっていることを通知することです。次に、ウィンドウコントローラは、ビューの外側のウィンドウ内の進行状況インジケーターやその他の処理に適切な処理を実行できます。この架空のデリゲートは、View Controllerクラスに追加する必要があり、そのプロトコルを設計するものです。

于 2012-04-14T19:39:36.800 に答える