내 (읽기 전용) 테이블 열에 대한 사용자 지정 포매터를 만들었습니다. 모양은 다음과 같습니다.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