セットアップ:
CoreData モデル
製品エンティティ
- 属性「名前」
- Relationship "common" <---> CommonData
CommonData エンティティ
- 属性「product_id」
- 関係「製品」 <---> 製品エンティティ
ビュー設定:
- 製品エンティティを表示する NSTableView があり、NSArrayController にバインドされています
- NSArrayController のそれぞれのアクションにバインドさ
add:
れた "+" と "-" の 2 つのボタンがあります。remove:
selection.common
コンテンツ オブジェクトにバインドされた NSObject コントローラーがあり、NSObjectController にバインドされた NSTextView があります。
Cocoa のドキュメントでは、この場合、製品エンティティが割り当てられるときに、関係エンティティが自動的に作成されないと記載されています。「+」ボタンをクリックすると、この動作を確認できます。製品は NSTableView に追加されますが、NSTextView には「No Context」と表示されます。また、製品と共通エンティティをコードで作成すると、NSTextView が *product_id* を正しく表示することがわかります。
ボタンを NSArrayController にバインドしたままにしたいと思います。
質問:
- 新しい製品エンティティが作成されたことを検出する方法はありますか?
- ボタン アクションを介して新しい製品エンティティが作成されたときに関係エンティティを追加する最良の方法は何ですか?