3

最新のXCodeでコアデータを使用しています。列の1つに、ビューベースのテーブルNSPopupButtonsがあります。テーブルには、エンティティ A からデータを取得する配列コントローラーがあります。エンティティ B には、別の配列コントローラーがあります。ポップアップ ボタン項目を埋めるのは、このエンティティ B です。

テーブルのNSPopupButton外側は問題なく埋めることができるので、これはテーブル関連の問題に違いありません!

テーブルの列内にあるポップアップ ボタンを埋めるにはどうすればよいですか?

ポップアップ ボタンが配置されたテーブルの一部。

4

3 に答える 3

0

私は確かにセルベースの NSPopupButtonCell を見つけました。ビューベースのテーブルでも同じことができるはずです。ビュー内のオブジェクトに直接バインドするため、バインドはまったく異なります。したがって、ポップアップのコンテンツをデータ ソースに直接バインドします。エンティティ B の IB に ArrayController を作成し、これをポップアップ コンテンツに直接バインドします。また、表示するエンティティ B のフィールドに contentValue をバインドします。

次に、ポップアップの列コンテンツをエンティティ A にバインドし、ポップアップの値をテーブル セル ビュー objectValue.(エンティティ A フィールド名) にバインドします。

于 2013-08-14T14:59:38.033 に答える
0

次のことができます。

  1. テーブル ビューの行の高さを 22px 以上に増やします。
  2. にバインドしobjectValue.menuValuesます (明らかに、に追加するものobjectValue)。
  3. はのNSPopupButtonサブビューとして配置する必要がありNSTableCellViewます。

objectValueこのように、 のメニューに入力できるバインディングが にある限り、NSPopupButton直接アクセスする必要はありません。ここから、selectorアウトレットをデリゲート/ビューコントローラーのクラスに設定し、気の利いsuperviewた掘り下げを使用NSTableCellViewしてそれを保持している場所を見つけ、そこから操作することもできます。

複雑なのはわかっていますが、コードはほとんどありません。むかし、私は IB を "n00b" すぎると見下していましたが、Bindings は IB を非常に強力なツールにしています。

于 2013-03-13T02:30:45.680 に答える