gpt4 book ai didi

macos - 如何为 NSCollectionView 的 "Overshoot"背景着色

转载 作者:行者123 更新时间:2023-12-03 16:16:26 28 4
gpt4 key购买 nike

我已经在我的 Cocoa 应用程序上实现了一个 Collection View ,如下 Ray Wenderlich's tutorial (非常有帮助,考虑到 Apple 的 API 在这方面的缺陷和损坏)。

在本教程中,使用以下代码将 Collection View 的 Canvas 设置为黑色(所有代码都在 View Controller 类的 viewDidLoad() 方法中):

collectionView.layer?.backgroundColor = NSColor.black.cgColor

但是,当您使用(例如)魔术鼠标/滚轮过度(“橡皮筋”)滚动时“偷看”的区域仍然是白色并且非常分散注意力:

enter image description here

我正在尝试将整个内容区域设为黑色。在我的 Storyboard中,我设置了 NSScrollView 的背景颜色。和NSClipView包含 Collection View 为黑色,但它不会改变外观。还尝试了编程替代方案:为 ScrollView 设置一个导出并调用:

self.scrollview.backgroundColor = NSColor.black
self.scrollview.contentView.backgroundColor = NSColor.black

...没有效果。

此外,我尝试过:

collectionView.superview?.layer?.backgroundColor = NSColor.black.cgColor

...但这也不起作用。

也没有:

self.view.layer?.backgroundColor = NSColor.black.cgColor

或者:

self.view.window?.backgroundColor = NSColor.black
<小时/>

更新:

我已将 ScrollView 的背景颜色设置为红色,并且 drawsBackgroundtrue (以 IB 和编程方式)。 NSScrollView 的文档的backgroundColor属性说:

This color is used to paint areas inside the content view that aren’t covered by the document view.

我已在运行时验证文档 View 确实是我的 Collection View :

if scrollview.documentView is NSCollectionView {
print("Document is collection")
}

但是,不会显示红色,并且文档之外的区域( Collection View )保持白色。

<小时/>

更新 2: 我启动了 View 层次结构调试器,看起来 drawsBackground 的值在运行时为 false(我在两者代码 Storyboard中将其设置为 true)!:

enter image description here

(不过,背景颜色本身似乎有所反射(reflect))

最佳答案

  1. 在 Interface Builder 中,选择文档大纲中的 CollectionView。
  2. 在“实用程序”窗口中,显示“属性”检查器。
  3. 在原色选择器控件中设置所需的颜色。

注意:您引用的 Ray Wenderlich 教程以编程方式设置 Collection View 的背景颜色。您需要删除该行,或者确保设置的颜色与上面第 3 步中选择的颜色相同。

enter image description here

关于macos - 如何为 NSCollectionView 的 "Overshoot"背景着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42778317/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com