答案 0 :(得分:1)
其基本概念是将NSScroller子类化,然后进行相应的更改。
我有相同的要求,所以我将其子类化并进行了如下所示的更改。 借助在线工具转换了目标C代码,因此对错误表示歉意 看看吧。
这可能有帮助。
// Converted to Swift 4 by Swiftify v4.1.6766 - https://objectivec2swift.com/
// GridScroller.h
// Created by Vikram on 08/09/16.
import Cocoa
class OpaqGridScroller: NSScroller {
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
NSColor.clear.setFill()
dirtyRect.fill()
// whatever style you want here for knob if you want
knobStyle = .dark
}
}
答案 1 :(得分:0)
您可以尝试覆盖绘制滚动器矩形
override func draw(_ dirtyRect: NSRect) {
NSDrawWindowBackground(bounds);
self.drawKnob()
}
您始终可以通过设置自定义矩形颜色来进行绘制
override func draw(_ dirtyRect: NSRect) {
NSColor.clear.set()
__NSRectFill(dirtyRect)
self.drawKnob()
}
答案 2 :(得分:0)
此解决方案对我有用。
class OpaqueGridScroller: NSScroller {
override func draw(_ dirtyRect: NSRect) {
// NSColor.clear.set()
// dirtyRect.fill()
self.drawKnob()
}
}