macOS 对 NSSlider 的封装,支持单向/双向滑动及支持 SwiftUI 工程
support macOS:10.15 and after
AppKit
let slider2 = CocoaSlider(value: $value, minValue: 0, maxValue: 10, trackHeight: 4,
knobSize: 10, knobColor: .white, fillColor: .red, backgroundColor: .black) { newValue in
print(newValue)
}
let hview = NSHostingView(rootView: slider2)
hview.frame = CGRect(x: 20, y: 100, width: 200, height: 30)
view.addSubview(hview)
slider.frame = CGRect(x: 20, y: 150, width: 200, height: 30)
slider.cell = CocoaSliderCell(minValue: -10, maxValue: 10, trackHeight: 2, knobSize: 12, style:
.doubleSide, fillColor: .red, backgroundColor: .black)
view.addSubview(slider)
SwiftUI
struct SwiftUIView: View {
@State var value: CGFloat = 0
var body: some View {
CocoaSlider(value: $value)
CocoaSlider(value: $value, minValue: 0, maxValue: 10, knobColor: .red) { value in
print(value)
}
CocoaSlider(value: $value, onChange: { value in
print(value)
})
}
}