私が達成したいことは、かなり単純であるように思えます。ここにサンプル プロジェクトを配置しました。
NSDictionaries の配列で満たされた NSArrayController があります。
[[self controller] addObject:@{ @"name" : @"itemA", @"part" : @"partA" }];
[[self controller] addObject:@{ @"name" : @"itemB", @"part" : @"partB" }];
[[self controller] addObject:@{ @"name" : @"itemC", @"part" : @"partC" }];
「name」キーに基づいて、この配列の項目を NSPopupButton に入力しています。これは、次のバインディングで簡単に実現できます
次に、NSPopupButton の現在の選択に基づいて、「part」キーのテキストを NSTextField に入力したいと思います。次のバインディングをセットアップしました。
これらのバインディングだけでは、テキスト フィールドに「partC」が表示されます。
しかし、NSPopupMenu の値を変更しても、テキスト フィールドに表示される内容は変わりません。
これは単に NSPopupButton で「選択したオブジェクト」バインディングを設定するだけの問題だと思いました
しかし、それは機能していません。奇妙な理由でメニューにプロキシオブジェクトが表示されます(ボーナスになる理由を提供します)。
では、これを機能させるにはどうすればよいでしょうか。