0

この質問は次の質問に似ています: How do I use an NSFormatter subclass with an NSPopUpButton

その質問で述べたように、NSPopUpButton のセルで使用される「フォーマッタ」が機能していないようです。これが予想されるのか、それとも実際に NSPopUpButton のフォーマッタを設定する目的があるのか​​ 疑問に思っています。

現在、「コンテンツ オブジェクト」が「コンテンツ配列」が NSNumber の NSArray である NSArrayController の ArrangeObjects にバインドされている NSPopUpButton があります。NSPopUpButton セルのフォーマッタを、通貨形式で NSNumbers をフォーマットする単純な NSNumberFormatter に設定しても機能しません。ポップアップ メニューには、フォーマットされていない数値が表示されます。

NSPopUpButton のポップアップ メニューに表示される文字列をフォーマットするにはどうすればよいでしょうか? これはかなり簡単だと思います。値トランスフォーマー、または表示パスの特別な値を使用する必要があることは、やり過ぎのように思えますが、より簡単なはずです。

前もって感謝します。

4

1 に答える 1

0

セルがフォーマッタを尊重しない場合は、-cost ではなく -formattedCost のような代替プロパティを提供できます。ポップアップ ボタンのメニュー項目はユーザーが編集できないため、手の込んだものは必要ありません。

-formattedCost プロパティは共有 NSNumberFormatter インスタンスを使用し、適切にフォーマットされた -cost の文字列を返します。

- (NSString *)formattedCost
{
    return [mySharedCurrencyFormatter stringFromNumber:[self cost]];
}

「formattedCost」プロパティは、表示のためにバインドするものです。追加の警告: 「formattedCost」キーを「cost」キーに依存するものとして登録する必要があります。そうすれば、コストが変更されると、ポップアップが更新されます (「formattedCost」も変更されるため)。

于 2010-01-11T15:06:53.650 に答える