2

我使用 Storyboard 来设置 NSScrollView,但我找不到任何可以禁用滚动条背景的选项。关于如何实现这一点的任何想法?

NSScroller 背景颜色

4

3 回答 3

3

基本上这背后的想法是 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
    }
}
于 2018-07-18T12:27:47.693 回答
1

这个解决方案对我有用。

class OpaqueGridScroller: NSScroller {
    override func draw(_ dirtyRect: NSRect) {
        // NSColor.clear.set()
        // dirtyRect.fill()
        self.drawKnob()
    }
}
于 2019-09-18T15:49:35.410 回答
1

您可以尝试覆盖绘制滚动条矩形

override func draw(_ dirtyRect: NSRect) {
    NSDrawWindowBackground(bounds);
    self.drawKnob()
}

您始终可以通过在之前设置它来绘制自定义矩形颜色

override func draw(_ dirtyRect: NSRect) {
    NSColor.clear.set()
    __NSRectFill(dirtyRect)

    self.drawKnob()
}
于 2018-06-27T11:50:53.970 回答