0

1列がNSPopUpButtonCellを使用するテーブルがあります。頑張ってみてください。思い通りにすべてを適切にバインドする方法がわからないようです。これが私がやろうとしていることです:

「フィールド値」と呼ばれる管理対象オブジェクトコンテキストからアイテムを取得するNSArrayControllerがあります。これは、各アイテムのポップアップメニュー(つまり、使用可能な選択肢のリスト)を設定するために使用されます。IBでセルを選択し、そのコンテンツ/オブジェクト/値を必要に応じて「フィールド値」.arrangedObjectsおよび「フィールド値」.arrangedObjects.nameにバインドすることでこれをバインドできます(表示されるオブジェクトと表示されるタイトルを取得するため)。

次に、各行で選択された値がコントローラークラスの配列から取得され、別のNSArrayControllerを介してのみ表示されるように(そして編集されるだけで)、列をバインドします。

これまでのところ、すべてのポップアップメニューに使用可能なフィールドのリストが含まれ、各フィールドでデフォルト値が選択されるように設定することができました。ただし、実際にアイテムを選択しても効果はありません。初期値にスナップバックするだけです。また、メニューに選択した値が入力されている、使用可能なすべての値の名前が含まれている、選択内容-descriptionに追加した「none」値が含まれているなど、これに関する他のバリエーションも見つけることができました。

かなり単純なものが欠けていることは確かですが、それが何であるかはわかりません。おそらく、この種のデータをバインドする方法(つまり、コンテンツとコンテンツオブジェクトとコンテンツ値)に見落としている微妙な点がいくつかありますが、今それを見ることができれば、私は気が滅入るでしょう。

よろしくお願いします:o)

4

2 に答える 2

2

データソースはCoreDataベースではありませんが、テーブルビューで同様の設定を行っていますが、微妙な違いである可能性があることを再確認する必要があることが1つあります。テーブル列の設定では、テーブル列自体がcontent、contentValues、およびselectedObjectを介してバインドされています。ただし、代わりに実際のNSPopUpButtonCellでバインディングを実行することも可能であるように見えます。おそらく、バインディングがテーブル列にある場合は機能しますが、実際のセルにある場合は機能しませんか?とにかく、調べる価値があるかもしれないことが1つあります。

于 2009-10-17T20:07:13.533 に答える
2

スクロール ビュー、テーブル ビュー、またはセルにバインドしないでください。ただし、テーブルの列にはバインドしてください。

Inspector ウィンドウのタイトルを見て、何をバインドしているのかを確認してください。

于 2010-03-23T16:26:58.600 に答える