我正在尝试将 CALayer 添加到 NSView。我没有工作的代码是
-(void) InsertCALayer
{
newLayer = [CALayer layer];
newLayer.frame = NSMakeRect(10, 10, 100, 100);
newLayer.backgroundColor = CGColorCreateGenericRGB(0.5, 0.5, 0.5, 1.0);
[rootLayer addSublayer:newLayer];
}
但是,此代码没有显示任何内容。奇怪的是,我还实现了一个 mouseDown 事件处理程序,代码确实在那里工作:
-(void) mouseDown:(NSEvent *)theEvent
{
newLayer = [CALayer layer];
newLayer.frame = NSMakeRect(10, 10, 100, 100);
newLayer.backgroundColor = CGColorCreateGenericRGB(0.5, 0.5, 0.5, 1.0);
[rootLayer addSublayer:newLayer];
}
我可以确认这两种方法都肯定会被调用,但我很困惑为什么一种方法有效而另一种方法无效。有什么想法吗?