与ValueTransformer绑定时,NSColorWell不会打开

时间:2010-02-25 21:33:19

标签: objective-c cocoa nscolor

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

1 个答案:

答案 0 :(得分:1)

中返回YES

+(BOOL)allowsReverseTransformation

apple docs示例让它返回NO,但是默认实现它返回YES。这背后的原因在理论上足够简单:苹果不希望你的用户能够设置一种颜色,然后崩溃应用程序(因为没有实现反向转换)。那么你应该实现

- (id)reverseTransformedValue:(id)value

如果您还没有这样做,请确保不会发生这种情况。 (如果你不苹果的文档说它会调用 - (id)transformedValue:(id)value)