I\'m again struggling with setting NSViews background colors to transparent. I have a NSCollectionView
as part of NSClipView
which is part of a
Ok, after a long evil trial and error phase I found a solution at least for myself. There are two background colors to set in order to have the proper behavior:
NSScrollView
:NSCollectionView
primary color:Both have to be set appropriately. At the point I set both to the same color I got the background I want. With setting only the ScrollView background color there was still the white background when scrolling the items in the CollectionView.
To make clear background for NSScrollView
, the best option in Swift 4.2 is "Not draw a background". Let's get to view a programmatically example:
let scrollView = NSScrollView()
scrollView.drawsBackground = false
scrollView.contentView.drawsBackground = false
NSCollectionView
has background for sections, so you need to specify colors for sections
let collectionView = NSCollectionView()
collectionView.backgroundColors = [.clear]
If you set backgroundColors
to nil
or to empty array, the background color is set by default to white.
If you set a background view for NSCollectionView
, this array is ignored
You could try to put a NSView
with frame
zero as a backgroundView
for NSCollectionView
I struggled a bit attempting to get my NSCollectionView background "transparent" @JFS solution pointed me in the right direction: and I finally achieved it by setting both the parent scrollView and the collectionView backgrounds:
cvScrollView.backgroundColor = NSColor.clear
collectionView.backgroundColors = [NSColor.clear]