我有一个 NSColorWell
,它绑定(bind)到一个包含 NSString
实例的属性,该实例通过我的 ColorTransformer 转换为 NSColor
(NSValueTransformer
)。它本质上是将 #FF0000
之类的内容转换为 NSColor
。这按预期工作,但单击时 ColorWell 不再打开其 Pane 。当我禁用绑定(bind)时,它会再次起作用。有什么线索可以说明我在这里做错了什么吗?
最佳答案
在
中返回YES+(BOOL)允许反向转换
苹果文档示例返回 NO,但默认实现返回 YES。理论上,其背后的原因非常简单:苹果不希望您的用户能够设置一种颜色,从而使应用程序崩溃(因为未实现反向转换)。然后你可能应该实现
- (id)reverseTransformedValue:(id)value
确保这种情况不会发生(如果您还没有这样做的话)。 (如果你不知道苹果的文档说它会调用 - (id)transformedValue:(id)value)
关于objective-c - 与 ValueTransformer 绑定(bind)时 NSColorWell 无法打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2337798/