From 108e85bec0214866a6c6239c27ecc4f0fa718a09 Mon Sep 17 00:00:00 2001 From: Serhiy Mytrovtsiy Date: Tue, 12 Jul 2022 19:12:58 +0200 Subject: [PATCH] fix: fixed scroll view anchors in the settings. It fixes the scrollbar overlay over settings. --- Kit/extensions.swift | 62 +++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 35 deletions(-) diff --git a/Kit/extensions.swift b/Kit/extensions.swift index 5589d0c5..21c93196 100644 --- a/Kit/extensions.swift +++ b/Kit/extensions.swift @@ -453,53 +453,45 @@ public extension CATransaction { } } -public final class FlippedClipView: NSClipView { - public override var isFlipped: Bool { - return true - } +public class FlippedStackView: NSStackView { + public override var isFlipped: Bool { return true } } -public final class ScrollableStackView: NSView { - public let stackView: NSStackView = NSStackView() - public let clipView: FlippedClipView = FlippedClipView() +public class ScrollableStackView: NSView { + public var stackView: NSStackView = FlippedStackView() + + private let clipView: NSClipView = NSClipView() private let scrollView: NSScrollView = NSScrollView() public override init(frame: NSRect) { super.init(frame: frame) - scrollView.translatesAutoresizingMaskIntoConstraints = false - scrollView.borderType = .noBorder - scrollView.hasVerticalScroller = true - scrollView.hasHorizontalScroller = false - scrollView.autohidesScrollers = true - scrollView.horizontalScrollElasticity = .none - scrollView.drawsBackground = false + self.clipView.drawsBackground = false + + self.stackView.orientation = .vertical + self.stackView.translatesAutoresizingMaskIntoConstraints = false + + self.scrollView.translatesAutoresizingMaskIntoConstraints = false + self.scrollView.hasVerticalScroller = true + self.scrollView.hasHorizontalScroller = false + self.scrollView.autohidesScrollers = true + self.scrollView.horizontalScrollElasticity = .none + self.scrollView.drawsBackground = false + self.scrollView.contentView = self.clipView + self.scrollView.documentView = self.stackView + self.addSubview(self.scrollView) NSLayoutConstraint.activate([ - scrollView.leftAnchor.constraint(equalTo: self.leftAnchor), - scrollView.rightAnchor.constraint(equalTo: self.rightAnchor), - scrollView.topAnchor.constraint(equalTo: self.topAnchor), - scrollView.bottomAnchor.constraint(equalTo: self.bottomAnchor) - ]) - - clipView.drawsBackground = false - scrollView.contentView = clipView - - stackView.orientation = .vertical - stackView.translatesAutoresizingMaskIntoConstraints = false - scrollView.documentView = stackView - - NSLayoutConstraint.activate([ - clipView.leftAnchor.constraint(equalTo: scrollView.leftAnchor), - clipView.rightAnchor.constraint(equalTo: scrollView.rightAnchor), + self.scrollView.leftAnchor.constraint(equalTo: self.leftAnchor), + self.scrollView.rightAnchor.constraint(equalTo: self.rightAnchor), + self.scrollView.topAnchor.constraint(equalTo: self.topAnchor), + self.scrollView.bottomAnchor.constraint(equalTo: self.bottomAnchor), - stackView.leftAnchor.constraint(equalTo: clipView.leftAnchor), - stackView.rightAnchor.constraint(equalTo: clipView.rightAnchor), - stackView.topAnchor.constraint(equalTo: clipView.topAnchor) + self.stackView.leftAnchor.constraint(equalTo: self.clipView.leftAnchor), + self.stackView.rightAnchor.constraint(equalTo: self.clipView.rightAnchor), + self.stackView.topAnchor.constraint(equalTo: self.clipView.topAnchor) ]) - - clipView.translatesAutoresizingMaskIntoConstraints = false } required public init?(coder: NSCoder) {