【发布时间】:2012-08-21 19:44:29
【问题描述】:
我正在尝试将 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];
}
我可以确认这两种方法肯定都会被调用,但我很困惑为什么一种方法有效而另一种方法无效。有什么想法吗?
【问题讨论】:
标签: objective-c macos core-animation calayer nsview