私の(読み取り専用の)テーブル列用のカスタムフォーマッタを作成しました。これは次のようになります。NSFormatterの問題:空の文字列が呼び出されない
- (NSString *)stringForObjectValue:(id)anObject
{
NSAssert([anObject isKindOfClass:[NSString class]] && anObject != nil,
@"invalid object");
if ([anObject isEqualToString:@""])
return @"EMPTY";
else
return [anObject stringByAppendingString:@"++"];
}
非常に単純です。対応するオブジェクトは単なる文字列なので、文字列から文字列へのフォーマッタです。すべての空でない文字列オブジェクトは、@"++"
が付加されて返されます。空の文字列オブジェクトは@"EMPTY"
文字列に変換する必要があります。
@"++"
は、空でない文字列に正しく付加されます。
問題は、@"EMPTY"
は表示されません!基本的なオブジェクトが空の文字列の場合、私のフォーマッタはCocoaによって呼び出されません。私の要求した@"EMPTY"
を表示するのではなく、対応する行だけが空のままです。
アイデア?
この問題は、NSTextFieldCellのプレースホルダ文字列と関係しているようです。残念ながら、デフォルトでは常にグレー表示されているため、カスタマイズできないようです。 – Enchilada