Я довольно новичок в привязках Какао, но я видел достаточно, чтобы с удовольствием поменять все мои старые неуклюжие методы на него. Например, у меня есть NSColorWell
, который меняет цвет текста на несколько NSTextField
с моей точки зрения. Кажется легким на практике, но это не работает.
Вот как выглядят мои привязки для моего NSColorWell
:
![enter image description here](https://i.stack.imgur.com/G5RK4.png)
А вот мои привязки для моего NSTextField
:
![enter image description here](https://i.stack.imgur.com/AiFX8.png)
Но вместо отображения цвета он просто отображает NSCalibratedRGBColor...
. Очевидно, что это не установка значения цвета для поля, это просто отображение необработанных данных.
Итак, покопавшись, я попытался сделать свой собственный NSValueTransformer
, выполнив следующее:
@interface DataToColor: NSValueTransformer {}
@end
#import "QWDataToColor.h"
@implementation DataToColor
+(Class)transformedValueClass { return [NSColor class]; }
+(BOOL)allowsReverseTransformation { return NO; }
-(id)transformedValue:(id)item {
NSColor *theColor=nil;
NSData *theData=[NSData dataWithData:item];
if (theData != nil)
theColor=(NSColor *)[NSUnarchiver unarchiveObjectWithData:theData];
return theColor;
}
@end
Затем я установил этот преобразователь значения в область «Value Transformer» в привязках в IB.
Тем не менее, он все же дал те же результаты. Есть идеи?