我有一个绑定到文本字段的NSSlider来显示滑块给出的值。
一切正常,但我希望NSSlider将“ nil”作为minValue发送给对象。

例如,我可以在保存(到属性列表)时将其转换为nil:

if ([myOb intValue] > 0)
    [myDict setObject:... forKey:...]


但是我想在应用程序运行时应用相同的行为,因为仅当“ myObj”的值为nil时,才会启用其他一些字段(具有绑定功能)。问题是NSSlider总是返回“ 0”,而minValue = nil不被NSSlider接受。

提前致谢,
罗南

最佳答案

它不会接受nil作为minValue。如果查看NSSlider文档,原因是因为minValuemaxValue都定义为double,它们不是对象类型。

如果要自定义在文本字段中显示的值,则可能需要创建NSValueTransformer子类,以将文本字段的double值转换为NSString值。阅读Value Transformer Programming Guide以获得有关如何执行此操作的详细信息。我过去已经这样做过,因此我可以使用一个标签来显示类似于“系统偏好设置”中的屏幕保护程序滑块的时间值。效果很好。

09-07 14:24