8

私は aNSViewControllerを管理していて、プロパティがあるNSTableViewことに気付きましたが、それは IBOutlet ではなく、インターフェイス ビルダーでのプロパティにをバインドできません。presentedObjectプロパティはどのように使用されると想定されていますか? 適切な使用例はありますか?NSViewControllerrepresentedObjectdataSourceNSTableViewrepresentedObjectNSViewController

4

2 に答える 2

4

このrepresentedObjectプロパティは、ドキュメント、別のモデル コントローラ、モデル オブジェクトなど、nib の外部に存在するオブジェクトに設定する必要があります。nib 内のものは、VC または VC からデータを取得する必要がありますrepresentedObject

于 2011-12-27T00:49:25.140 に答える
1

これは古いトピックであることは承知していますが、私はここで表現オブジェクトについてかなりの調査を行ったので、追加したいと思いました。お役に立てれば!

representedObjectビューが表す必要のあるAnyObject( )への参照です。NSObject

オブジェクトのコピーではなく、オブジェクトへの参照です (Swift と Objective-C の両方で)

理想的に言えば、問題のビューが「連絡先アプリ」のページアウトである場合。このページrepresents a contactでは、presentedObject は、それをインスタンス化したオブジェクトによって設定される必要があります。問題の連絡先のインスタンスへの参照です。 fooContactfooContact

インスタンス化するクラスで設定する必要はありませんが、個人的にはよりクリーンなアプローチだと思います。

私は通常、表されたオブジェクトのデフォルトのゲッター/セッターをオーバーライドしようとすることを避け、クラス内の別の var によってそれを参照します。

weak var document: Document{
    if let docRef = self.representedObject as Document {
        return docRef
    }
    return nil
}

弱い参照を維持することで、参照サイクルを回避できます。

于 2015-08-08T02:26:53.090 に答える