私のドキュメントベースのCoreDataアプリケーション(IBでバインディングを使用)には、Employee(employeeName属性を持つ)とTimeSheet(timeDescription属性とentryDate属性を持つ)の2つのエンティティがあります。 従業員は、TimeSheetと1対多(employeeTimeSheet)の関係にあります。
TimeSheetエントリ用に設定されたMaster-Detailを作成しています。
マスターの場合、値がEmployeeController(Employeeエンティティを使用するNSArrayController)、arrangedObjects、employeeNameにバインドされた1列のtableViewがあります。
EmployeeController、selection、employeeTimeSheetにバインドされたcontentSetを持つNSMutableDictionaryとして設定されたdetailController(別のNSArrayController)があります。
次に、3つの列を持つDetail tableViewがあり、それぞれの値はDetailController、arrangedObjects、employeeDetails.employeeName(列0)、 entryDate(列1)、およびtimeDescription(列2)にバインドされています。
これですべて正常に機能します。マスターテーブルから従業員を選択すると、詳細テーブルにその従業員に関連付けられているすべてのタイムシートエントリが表示されます。選択した従業員を使用してエントリを追加できます。すべてがうまく機能します。
私の問題は、tableViewをマスタービューとして使用する代わりに、従業員を選択してその従業員に関連付けられているすべての時間エントリを表示できる場所にNSPopupButtonが必要だったことです。
コンテンツ、値、arrangedObjects、selectedObjectなどのすべての組み合わせを、所有しているコントローラーのすべての組み合わせで試しましたが、NSPopupButtonを単一列のtableViewと同じように動作させることはできません。
私はこれについての詳細を無駄に検索し、バインディングのドキュメントを数回読みましたが、混乱し続けています。これは比較的単純なはずだと思いますが、理解できないようです。ここに投稿する前に、私はほぼ2日間頭を悩ませてきました。
誰かが私がどこで間違っているのか指摘できますか?私はコードを投稿しますが、それが主にIBのものであることを考えると、それは実際には適切ではありません。
ビリー。