Objective c NSColorWell不';与ValueTransformer绑定时不打开

Objective c NSColorWell不';与ValueTransformer绑定时不打开,objective-c,cocoa,nscolor,Objective C,Cocoa,Nscolor,我有一个NSColorWell,它绑定到一个属性,该属性包含一个NSString实例,该实例通过我的ColorTransformer(NSValueTransformer)转换为NSColor)。它本质上是将类似于#FF0000的内容转换为NSColor。这与预期一样有效,但单击ColorWell时将不再打开其窗格。当我禁用绑定时,它会再次工作。有什么线索可以说明我做错了什么吗?请在中返回YES +(BOOL)允许反向转换 apple docs示例返回NO,而默认实现返回YES。这背后的原因在理

我有一个
NSColorWell
,它绑定到一个属性,该属性包含一个
NSString
实例,该实例通过我的ColorTransformer(
NSValueTransformer
)转换为
NSColor
)。它本质上是将类似于
#FF0000
的内容转换为
NSColor
。这与预期一样有效,但单击ColorWell时将不再打开其窗格。当我禁用绑定时,它会再次工作。有什么线索可以说明我做错了什么吗?

请在中返回YES

+(BOOL)允许反向转换

apple docs示例返回NO,而默认实现返回YES。这背后的原因在理论上非常简单:苹果不希望你的用户能够设置一种颜色,这会导致应用程序崩溃(因为没有实现反向转换)。然后,您可能应该实现

- (id)reverseTransformedValue:(id)value
以确保不会发生这种情况,如果您尚未这样做的话。(如果你不知道苹果的文档说它将调用-(id)transformedValue:(id)value)

对我来说有点有用:)我正在基于值的类型检查处理transformedValue内部的所有内容,但我想我可以在这种情况下使用reverseTransformedValue。