是否有人使用NSStepper
控件(很多,实际上是......),其中Increment设置为0.1或除整数值以外的任何值,而不是每次都调用setIncrement:
NSStepper
实例?
我有一个类似编辑器的UI,需要步进器以微小的增量更改其附加值NSTextField
的值。
在Interface Builder(IB)中将增量设置为十进制值会导致它将其四舍五入为整数 - 尽管API接受双精度。
甚至在增量字段中不输入任何内容,并使用NSStepper
子类调用setIncrement:
所有实例将其设置为例如init
上的0.1失败,因为IB显然仍然将增量设置为0或调用init
后的某些内容。
不确定它是如何做到的,因为子类中的setIncrement:
覆盖未被调用...
答案 0 :(得分:1)
如果你有很多NSStepper
与标准的NSStepper
只有增量,那么你可以尝试继承initWithCoder:
并覆盖initWithCoder:
,这是调用时的初始值从nib文件重新创建一个对象。
我倾向于将initWithFrame:
与super
一起视为指定的初始化程序,但文档在这方面并不含糊。无论如何,如果你在设置自己的属性之前调用initWithFrame:
,它应该工作并且健壮。如果您执行此类操作,您还可以考虑重写increment
来执行相同的初始化,因此您可以通过不同的方式获得一致的行为来实例化子类。
这种方法的缺点是您无法在Interface Builder中为自定义子类设置{{1}},因此您可能希望将其记录在后面。