1

我正在尝试使 NSSlider 的值/数字非线性...

@IBOutlet private weak var _countSlider:NSSlider!;

let countSliderValues:[Int] = [1, 20, 50, 100, 500, 1000];
_countSlider.numberOfTickMarks = countSliderValues.count;
_countSlider.minValue = Double(countSliderValues[0]);
_countSlider.maxValue = Double(countSliderValues[countSliderValues.count - 1]);
_countSlider.allowsTickMarkValuesOnly = true;
_countSlider.integerValue = 100;

但由于某种原因,滑块显示线性值(1、200、400、600、800、1000)。有谁知道为什么会这样?

4

1 回答 1

2

刻度线数量属性设置在滑块的最小值和最大值之间均匀划分的刻度线。无法为每个单独的刻度线定义目标值。

您最好的选择是通过子类化和强制它们以您想要的方式运行您自己的解决方案,或者NSSlider从头NSSliderCell开始创建您自己的全新控制,特定于非线性缩放。没有什么说您仍然不能NSSliderCell用来绘制标准系统部件(轨道和旋钮)。

于 2015-05-05T15:07:33.320 回答