0

我正在尝试将 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];
}

我可以确认这两种方法都肯定会被调用,但我很困惑为什么一种方法有效而另一种方法无效。有什么想法吗?

4

1 回答 1

0

是个

-(void) InsertCALayer

加载视图层次结构后调用方法?如果您在调试器中的 InsertCaLayer 方法和“po”rootLayer 中设置断点,您是否有有效的对象?

在对视图层次结构进行更改之前,必须完全加载它。我想知道这是否是这里的问题。让我知道!

于 2012-08-21T19:52:34.827 回答