我有一个NSColorWell
,它绑定到一个包含NSString
实例的属性,通过我的ColorTransformer(NSColor
)将其转换为NSValueTransformer
。它实质上将#FF0000
之类的内容转换为NSColor
。这可以按预期工作,但ColorWell在单击时不再打开它的窗格。当我禁用绑定时,它再次起作用。我在这里做错了什么线索?
答案 0 :(得分:1)
在
中返回YES +(BOOL)allowsReverseTransformation
apple docs示例让它返回NO,但是默认实现它返回YES。这背后的原因在理论上足够简单:苹果不希望你的用户能够设置一种颜色,然后崩溃应用程序(因为没有实现反向转换)。那么你应该实现
- (id)reverseTransformedValue:(id)value
如果您还没有这样做,请确保不会发生这种情况。 (如果你不苹果的文档说它会调用 - (id)transformedValue:(id)value)