带整数值的Cocoa滑块

带整数值的Cocoa滑块,cocoa,macos,slider,Cocoa,Macos,Slider,我试图在mac应用程序中使用水平滑块,默认情况下,滑块值是浮点数,因为我需要在标签中再次显示值作为文本(使用用户默认值绑定),所以有没有办法使滑块输出整数而不是浮点数?你不能让滑块不考虑浮点,但你可以让它只给你整数。将其刻度线数设置为((最大值-最小值)+1),并将其设置为仅在刻度线上停止。您不能使滑块不以浮点形式思考,但可以使其仅给出整数。将其记号数设置为((最大值-最小值)+1),并将其设置为仅在记号上停止。另一种仅强制执行整数值的方法是将滑块绑定到自定义控制器对象,并在该对象中为控制器的属

我试图在mac应用程序中使用水平滑块,默认情况下,滑块值是浮点数,因为我需要在标签中再次显示值作为文本(使用用户默认值绑定),所以有没有办法使滑块输出整数而不是浮点数?

你不能让滑块不考虑浮点,但你可以让它只给你整数。将其刻度线数设置为((最大值-最小值)+1),并将其设置为仅在刻度线上停止。

您不能使滑块不以浮点形式思考,但可以使其仅给出整数。将其记号数设置为((最大值-最小值)+1),并将其设置为仅在记号上停止。

另一种仅强制执行整数值的方法是将滑块绑定到自定义控制器对象,并在该对象中为控制器的属性实现
验证:错误:
方法(将属性名称替换为“”)。在该验证方法中,从收到的NSNumber对象中取消对数字的装箱,根据需要对数字进行四舍五入,将其装箱备份,并将新对象替换为验证值。(有关详细信息,请参阅。)


这将使在用户默认值中保存值变得复杂;您必须在自定义控制器的属性设置器中执行此操作。

另一种仅强制执行整数值的方法是将滑块绑定到自定义控制器对象,并在该对象中,为控制器的属性实现
验证:错误:
方法(将属性名称替换为“”)。在该验证方法中,从收到的NSNumber对象中取消对数字的装箱,根据需要对数字进行四舍五入,将其装箱备份,并将新对象替换为验证值。(有关详细信息,请参阅。)


这将使在用户默认值中保存值变得复杂;您必须在自定义控制器的属性设置器中执行此操作。

还有另一种方法(因为您似乎主要关心值的显示)是在标签(NSTextField)中使用NSNumberFormatter。只需将数字格式化程序拖到标签上,并将其配置为显示整数。它甚至可以为您取整。

另一种方法(因为您似乎主要关注值的显示)是在标签中使用NSNumberFormatter(NSTextField)。只需将数字格式化程序拖到标签上,并将其配置为显示整数。它甚至会为您提供整数。

我不确定您对绑定的具体使用,但
[mySlider integerValue]
应该给出说明。

我不确定您对绑定的具体使用,但
[mySlider integerValue]
应该给出它所说的。

谢谢,这似乎是一个更容易实现的解决方案,所以我将使用iThanks,这似乎是一个更容易实现的解决方案,所以我将使用iThanks,这是一个很酷的提示,我是cocoa新手,不知道您可以将NSNumberFormatter拖到标签中,很高兴知道:)因为我以后需要读取用户默认值,所以更改源代码会更容易,所以我不需要更改其他位置。谢谢,这是一个很酷的提示,我是cocoa新手,不知道您可以将NSNumberFormatter拖到标签中,很高兴知道:)因为我以后需要读取用户默认值,所以更改源代码会更容易,所以我不需要在别的地方换车。