我有一个基本的 Cocoa 应用程序,它有一个自定义NSCollectionView
覆盖drawRect:
以绘制红色背景(用于说明目的)。
我注意到在看似随机的时间,drawRect:
虽然我调用了setNeedsDisplay:YES
. 其他时候它工作并且集合视图具有红色背景。
我花了几个小时,但后来我终于注意到在视图层次结构的高处,其中一个父视图是一个支持层的视图(我在 Interface Builder 中检查了“核心动画层”以向元素添加阴影) .
将该父视图更改为不使用图层支持立即解决了问题,drawRect:
然后总是按预期调用。
令我困惑的是,在父视图上启用图层支持时,drawRect:
有时会调用它,但并非总是如此。
如果父视图是图层支持的,我是否应该假设我不能在任何子视图中可靠地覆盖? drawRect: