自从上一个问题以来,我一直试图让ValueTransformer将NSSlider的值转换为Integer。
背景: 我有一个绑定到共享用户默认值控制器的NSSlider。 textlabel也使用相同的密钥绑定到共享用户默认控制器。我需要textfield才能显示Int。
现在我的代码看起来像这样:
class IntegerTransformmer: ValueTransformer {
override class func transformedValueClass() -> AnyClass {
return NSNumber.self
}
override class func allowsReverseTransformation() -> Bool {
return true
}
// as far as I know, here is an override function required. But doing override in the following line, i´m getting error.
func transformedValue(value: Any?) -> Int? {
let int = value as! Int
return int
}
}
对于NSSlider和我在bindingsInspector中设置的标签IntegerTransformmer
上的Value Transformer。
在AppDelegate中,我将ValueTransformer初始化为:
override class func initialize() {
let newTransformer = IntegerTransformmer()
ValueTransformer.setValueTransformer(newTransformer, forName: NSValueTransformerName(rawValue: "IntegerTransformmer"))
}
建筑工程没有错误,但在我的标签中,我仍然得到DoubleValues。
为什么我不允许transformedValue(value: Any?)
作为覆盖?
这是它不工作的原因吗?
非常感谢任何形式的帮助。