Как сделать фон Scroller прозрачным в NSScrollView? - PullRequest
0 голосов
/ 27 июня 2018

Я использовал раскадровку для настройки NSScrollView, и я не могу найти никакой опции, где можно отключить фон скроллера. Любые идеи о том, как это сделать?

NSScroller Background Color

Ответы [ 2 ]

0 голосов
/ 18 июля 2018

В основном идея заключается в том, чтобы создать подкласс 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
    }
}
0 голосов
/ 27 июня 2018

Вы можете попробовать переопределить рисовать скроллер прямоугольник

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

Вы всегда можете нарисовать собственный прямоугольный цвет, установив его до

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

    self.drawKnob()
}
...