我正在尝试将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];
}
我可以确认这两种方法肯定都被调用了,但是我很困惑为什么一个有效,另一个没有。有什么想法吗?
答案 0 :(得分:0)
是
-(void) InsertCALayer
在视图heirarchy加载后调用方法?如果在InsertCaLayer方法中调试器中设置断点,并且' po' rootLayer你有一个有效的对象吗?
在对视图进行更改之前,必须完全加载视图层次结构。我想知道这是不是问题。让我知道!