2

2 つのエンティティ (Employee と Department) を持つ Core Data アプリを作成する場合を想像してみてください。従業員は部門 (部門) と対 1 の関係を持ち、逆は対多の関係 (従業員) です。UI では、個々の Employee エンティティを選択し、詳細領域で詳細を編集できます (もちろん他の属性があり、Department エンティティを追加および編集するための UI があります)。ポップアップ ボタンを使用する場合のバインディングは次のとおりです。

コンテンツ =PopUpArrayController.arrangedObjects
コンテンツ値 = PopUpArrayController.arrangedObjects.name(名前は NSString です)
選択されたオブジェクト =EmployeeArrayController.selection.department.name

これにより、ポップアップ メニューですべての部門を表示し、現在の従業員の部門を正しく選択し、その部門を期待どおりに変更することができます。目標は、NSComboBox でこれを変更して、ユーザーがタブでボックスに移動し、マウスに切り替えることなく部門名を入力できるようにすることです。これを達成するために、さまざまなバインディングを試しました。これらのバインディングを使用して、1回の実行で機能することさえありました。

コンテンツ =PopUpArrayController.arrangedObjects.name
値 =EmployeeArrayController.selection.department.name

少なくとも 1 回は、これが期待どおりに機能しました (入力されたテキストが既存の部門と一致しない場合でも、新しい部門が追加されました)。ただし、利用可能な部門とオートコンプリートが表示されるようになりましたが、コンボ ボックスで値が変更されたときにモデルが正しい値で更新されません。ポップアップで部門を設定または変更すると、正しい部門がコンボボックスに表示されます。

誰かが私が欠けているものを知っていますか? ありがとう。

4

1 に答える 1

3

したがって、この問題に対する少なくとも1つの答えを見つけました。短いバージョンは、バインディングを使用してこの効果を達成する方法がないということです。私はついにウェブ上でhttp://frankschmitt.org/2007/06/comboboxenを見つけました。これにより、問題を解決するのに十分な詳細が得られました (ただし、投稿のコード形式にはいくつかの問題がありますが、NSValueTransformer のドキュメントが穴を埋めています)。 )。

于 2010-08-10T04:26:50.627 に答える