gpt4 book ai didi

cocoa - 带十进制值的 NSStepper

转载 作者:行者123 更新时间:2023-12-03 17:55:15 24 4
gpt4 key购买 nike

是否有人有一种解决方法,可以使用 NSStepper 控件(事实上,很多......),将增量设置为 0.1 或除整数值以外的任何值,而无需调用 setIncrement: 在每个 NSStepper 实例上?

我有一个类似编辑器的 UI,需要步进器以微小的增量更改其附加 NSTextField 实例的值。

在 Interface Builder (IB) 中将增量设置为十进制值会导致其将其舍入为整数 - 尽管 API 接受 double 值。

即使在增量字段中不输入任何内容,并使用 NSStepper 子类调用 setIncrement: 来将其设置为例如init 上的 0.1 失败,因为 IB 显然在调用 init 后仍然将增量设置为 0 或其他值。

但不确定它是如何做到这一点的,因为子类中的 setIncrement: 重写没有被调用...

最佳答案

如果您有很多 NSStepper,它们与标准的仅增量不同,那么您可以尝试子类化 NSStepper 并重写 initWithCoder: 这是从 nib 文件重新创建对象时调用的初始化程序。

我倾向于将 initWithCoder:initWithFrame: 一起视为指定的初始化程序,但文档在这方面有点含糊。无论如何,如果您在设置自己的属性之前调用 super,它应该可以工作并且很健壮。如果您使用这种技巧,您还可以考虑重写 initWithFrame: 来执行相同的初始化,这样您就可以在实例化子类的不同方法中获得一致的行为。

这种方法的缺点是您将无法在 Interface Builder 中为自定义子类设置增量,因此您可能需要对其进行详细记录以供后验。

关于cocoa - 带十进制值的 NSStepper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14662833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com