Transparent NSCollectionView Background

前端 未结 3 490
滥情空心
滥情空心 2021-01-04 23:53

I\'m again struggling with setting NSViews background colors to transparent. I have a NSCollectionView as part of NSClipView which is part of a

相关标签:
3条回答
  • 2021-01-05 00:43

    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:

    1. the background color of the NSScrollView:

    1. the 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.

    0 讨论(0)
  • 2021-01-05 00:44

    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

    0 讨论(0)
  • 2021-01-05 00:54

    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]
    
    0 讨论(0)
提交回复
热议问题