ユーザーが行をダブルクリックしたときの「詳細ビュー」が欲しいのですが、データを NSViewController に取得する方法がわからないので、コンテンツを表示できます。CoreData を使用していますが、これを行う方法が思いつきません。
2 に答える
ここでは、いくつかの手順を実行する必要があります。
テーブルビューがによって駆動され、
NSArrayController
テーブルビューのコントローラー(ウィンドウコントローラーまたはビューコントローラーなど)がNSArrayController
ivarにバインドされていることを確認して、アクセスできるようにします。テーブルコントローラーでダブルクリックアクションをコントローラーのメソッドに設定し、ターゲットをコントローラーに設定します。
-selectedObjects
ダブルクリック メソッドでは、からをリクエストすることで行にアクセスでき、NSArrayController
その結果NSArray
には要素が 1 つだけ含まれている必要があります。
そこから、詳細ビューを作成したり、それでやりたいことが何でもできます。シートを作成して表示したり、モーダルウィンドウを開くことができます。
ココアバインディング。
Apple には、Master-Detail インターフェイスのオンライン作成に関する優れたチュートリアルがあります。
Xcode 3.2 を使用している場合、スクリーンショットは少し古くなっていますが、それほど違いはありません。
NSViewController には、現在表示しているモデル オブジェクトにバインドできる、presentedObject プロパティがあります。
編集:
わかりました。それは真実の半分にすぎないので、私の答えはそれほど素晴らしいものではありません.
詳細ビュー内でコントロールをバインドする方法を示していますが、アレイ コントローラーの選択をビュー コントローラーの にバインドする方法については説明していませんrepresentedObject
。
この問題に対するバインディングのみの解決策に興味があります。