2011-01-04 1 views
3

Каков правильный способ сделать это? Вот что я пытаюсь. Но дисплей никогда не вызывается на dotLayer:Как программно настроить слой NSView

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    DotLayer *dotLayer = [[DotLayer alloc]init ]; 
    dotLayer.frame= CGRectMake(10, 10, 100, 100); 
    dotLayer.nDots = 4; 
    NSView *contentView = window.contentView; 
    CALayer *layer = [[CALayer alloc]init]; 
    layer.frame = CGRectMake(0,0,200,200); 
    contentView.layer = layer; 
    [layer addSublayer:dotLayer]; 
    [dotLayer setNeedsDisplay]; 
} 

DotLayer - это подкласс CALayer.

ответ

8

Возможно, вы забыли указатьWantsLayer?

[contentView setLayer:.. whatever your root layer is]; 
[contentView setWantsLayer:YES]; 

(Не забудьте также порядок этих двух линий имеет решающее значение ... см DOCO.)

В Swift это

contentView.wantsLayer = true 
+1

Это устранило проблему для меня. Примечательно, что в Swift это «contentView.wantsLayer = true» – kbpontius

+0

отличная точка – Fattie

 Смежные вопросы

  • Нет связанных вопросов^_^