美文网首页
macOS 开发之-NSSlider

macOS 开发之-NSSlider

作者: 魔都兰陵王 | 来源:发表于2018-12-24 17:47 被阅读7次

NSSlider继承于:NSControl。和UISlider用法有些类似.

基本使用
        let slider = NSSlider(frame: CGRect(x: 20, y: 100, width: 200, height: 50))
        slider.sliderType = NSSlider.SliderType.linear  // slider 样式 圆形/条形
        slider.minValue = 0      // 最小值
        slider.maxValue = 100    // 最大值
        slider.isVertical = false  // 垂直显示,SliderType.linear 有效
        
        slider.numberOfTickMarks = 10 //设置 numberOfTickMarks > 0 即可显示刻度。否则自动隐藏刻度
        slider.allowsTickMarkValuesOnly = true //滑动时只能停留在刻度上
        slider.tickMarkPosition = NSSlider.TickMarkPosition.below  //刻度位置
        
        //添加监听方法
        slider.target = self
        slider.action = #selector(sliderValueChanged(slider:))
        view.addSubview(slider)
样式
@available(OSX 10.10, *)
    open var sliderType: NSSlider.SliderType
    public enum SliderType : UInt {
        case linear      //条形
        case circular  //圆形
    }
各种Slider样式
刻度显示的位置 tickMarkPosition

对于SliderType.circular,都在圆圈的外面,设置无效。

    public enum TickMarkPosition : UInt {
        case below  //刻度在下
        case above //刻度在上
        public static var leading: NSSlider.TickMarkPosition { get }//isVertial时,刻度在左
        public static var trailing: NSSlider.TickMarkPosition { get }//isVertial时,刻度在右
    }
监听方法
@objc func sliderValueChanged(slider: NSSlider) {
      print(slider.floatValue)//当前值刻度floatValue(父类NSControl中的属性)
}
自定义颜色

在Mac 开发中修改多数控件的样式都需要子类化控件并设置自定义的cell,这里不详解了。

相关文章

网友评论

      本文标题:macOS 开发之-NSSlider

      本文链接:https://www.haomeiwen.com/subject/iedzkqtx.html