NSValueTransformerClass für NSImage aus einem Enum/Int-Wert
-
20-12-2019 - |
Frage
So verwenden Sie eine transformierbare Klasse, um eine zu binden NSImageView
In NSTableView
.
Es gibt eine Flagge vom Typ enum
, basierend darauf muss das Bild geändert werden.
Lösung
Der NSValueTransformer
Klasse ist wie folgt:
@implementation MyImageTransformer
+ (BOOL) allowsReverseTransformation{
return NO;
}
+ (Class) transformedValueClass{
return [NSImage class];
}
- (id) transformedValue:(id)value{
NSArray *images = @[[NSImage imageNamed:@"failed.png"],
[NSImage imageNamed:@"success.png"],
[NSImage imageNamed:@"error.png"],
[NSImage imageNamed:@"inprogress.png"]
];
NSInteger integer = [value intValue];
NSImage * image = images[integer];
NSData * tiffData = [image TIFFRepresentation];
return tiffData;
}
@end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow