私は aNSViewController
を管理していて、プロパティがあるNSTableView
ことに気付きましたが、それは IBOutlet ではなく、インターフェイス ビルダーでのプロパティにをバインドできません。presentedObjectプロパティはどのように使用されると想定されていますか? 適切な使用例はありますか?NSViewController
representedObject
dataSource
NSTableView
representedObject
NSViewController
2 に答える
このrepresentedObject
プロパティは、ドキュメント、別のモデル コントローラ、モデル オブジェクトなど、nib の外部に存在するオブジェクトに設定する必要があります。nib 内のものは、VC または VC からデータを取得する必要がありますrepresentedObject
。
これは古いトピックであることは承知していますが、私はここで表現オブジェクトについてかなりの調査を行ったので、追加したいと思いました。お役に立てれば!
representedObject
ビューが表す必要のあるAnyObject
( )への参照です。NSObject
オブジェクトのコピーではなく、オブジェクトへの参照です (Swift と Objective-C の両方で)
理想的に言えば、問題のビューが「連絡先アプリ」のページアウトである場合。このページrepresents a contact
では、presentedObject は、それをインスタンス化したオブジェクトによって設定される必要があります。問題の連絡先のインスタンスへの参照です。 fooContact
fooContact
インスタンス化するクラスで設定する必要はありませんが、個人的にはよりクリーンなアプローチだと思います。
私は通常、表されたオブジェクトのデフォルトのゲッター/セッターをオーバーライドしようとすることを避け、クラス内の別の var によってそれを参照します。
weak var document: Document{
if let docRef = self.representedObject as Document {
return docRef
}
return nil
}
弱い参照を維持することで、参照サイクルを回避できます。