macos - 具有非线性刻度的 NSSlider

标签 macos cocoa swift nsslider

我正在尝试使 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;

但由于某种原因, slider 显示线性值(1、200、400、600、800、1000)。有谁知道为什么会发生这种情况吗?

最佳答案

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

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

关于macos - 具有非线性刻度的 NSSlider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30056304/

相关文章:

java - 在 Mac OS X Lion 中初始化 Java VM 时出错

python - 使用 Python 在 Mac 上设置文件夹背景图像

CSS - 溢出 : Scroll; - Always show vertical scroll bar?

cocoa - NSWindowController 多 Nib 问题

objective-c - Mac 开发 - 使用工具栏构建应用程序

cocoa - NSMenuBar 鼠标按下通知?

ios - 试图导出到 csv 但我如何从委托(delegate)中实现?

ios - UITableViewCell 问题的尾随空格

ios - 如何在 Swift 3/4 中使用相机获取位置?

ruby-on-rails - nokogiri gem 安装错误