0

NSFormatter サブクラスを使用して、選択肢のリストを表示するために使用している NSPopUpButton の内容をフォーマットしたいと考えています。

基本的に、Content Values バインディングを介して NSPopUpButton にバインドされた MyObjects の NSArray があり、-description によって返されるもの以外のポップアップ メニューに何かを表示したいと考えています。まったく新しい配列を作成し、新しい配列に追加する前に各オブジェクトを文字列に変換する必要があるため、トランスフォーマーはあまり使用したくありません。

IB またはコードを介して NSPopUpButton 自体で setFormatter: を使用しても機能しません。これは、個々のセルのフォーマッタのみがリスト内の項目に適用されるためと思われます。

NSPopUpButton のすべてのセルにフォーマッタを設定する簡単な方法はありますか? 基本的には、一度設定して忘れられるようにしたいです。

4

1 に答える 1

1

通常、ポップアップボタンを(コンテンツバインディングを介して)カスタムモデルオブジェクトを含む配列コントローラーにバインドし、コンテンツ値バインディングを使用して、タイトルとして使用する文字列を使用してそれらのオブジェクトのキーパスを指定します。

私の理解では、データソースとして使用したいプレーンな文字列の配列がありますが、タイトルに別の文字列を表示したいだけですよね?

上記のように設定した場合、データトランスフォーマーの作成が機能しない理由がわかりません。または、何かを誤解している可能性がありますか?1つは実際の文字列にバインドし、もう1つはトランスフォーマーを使用して文字列にバインドしますが、どちらも同じ配列コントローラーを使用します。他のオプションは、文字列をラップしてタイトルプロパティを提供するモデルクラスを作成するか、表示値のバインディングとして使用するタイトルを返すNSStringにカテゴリを作成することです。これらすべての場合において、コードで独自のNSFormatterを作成し、それを使用して正しい文字列タイトルを返すことができます。

于 2009-05-04T22:09:33.823 に答える