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

标签 macos cocoa appkit nscollectionview

我已经在我的 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/

相关文章:

xcode - brew doctor 说 "Your Xcode (3.2) is outdated Please install Xcode 4.6.2."但我已经安装了它

macos - 在哪里读取 .DMG Mac OS 文件中的数据文件夹和配置文件?

ios - iVar 未使用 ARC 释放

macos - 操作系统状态栏上的 "disabled"图标规范

objective-c - NSLayoutConstraint 的默认常量是什么?

xml - 以下基于 Swift 的 XML 解析器的瓶颈是什么?

python - 在 Mac OS X 10.6 Snow Leopard 上安装 Mercurial

cocoa - NSButton 具有可变大小宽度、圆角

cocoa - 将新文档的窗口缩放至全屏

cocoa - 获取NSView和NSImageView的宽度和高度