NSViewController. Подслой основной анимации не рисует - PullRequest
2 голосов
/ 14 января 2010

Я создаю NSViewController. Он управляет моей иерархией представлений и устанавливает другие представления в одном NSBox.

- (void)displayViewController:(ManagingViewController *)vc
{
NSWindow *w = [box window];
NSView *v = [vc view];
[box setContentView:v];
}

У меня есть два альтернативных вида. Представления имеют корневой слой Quartz Composer и подслой CALayer.

 // ----------
 // Root Layer
 // ----------
 QCCompositionLayer* rootLayer = [QCCompositionLayer compositionLayerWithFile:[[NSBundle mainBundle]
                  pathForResource:@"BackgroundHome" 
                  ofType:@"qtz"]];
[self setLayer:rootLayer];
[self setWantsLayer:YES];


 // ----------
 // Menu Layer
 // ----------
 menusLayer = [CALayer layer];
 menusLayer.frame = rootLayer.bounds;
 menusLayer.layoutManager =[CAConstraintLayoutManager layoutManager];

 [rootLayer addSublayer:menusLayer];


 // --------------
 // Menu Items
 // --------------
 NSInteger i;
 for (i=0;i<[section count];i++) {
 NSString *name = [section objectAtIndex:i];

 CATextLayer *menuItemLayer = [CATextLayer layer];

 menuItemLayer.string = name;
 menuItemLayer.font = @"Lucida-Grande";
 menuItemLayer.fontSize = fontSize;
 menuItemLayer.foregroundColor = CGColorCreateGenericRGB(1.0,1.0,1.0,1.0);

 [menuItemLayer addConstraint:[CAConstraint
       constraintWithAttribute:kCAConstraintMaxY
       relativeTo:@"superlayer"
       attribute:kCAConstraintMaxY
       offset:-(i*height+spacing+initialOffset)]];
 [menuItemLayer addConstraint:[CAConstraint constraintWithAttribute:kCAConstraintMidX
            relativeTo:@"superlayer"
             attribute:kCAConstraintMidX]];

 [menusLayer addSublayer:menuItemLayer];
 }
 [menusLayer layoutIfNeeded];

Я запускаю свое приложение, я могу чередовать представления, но я смотрю только QCCompositionLayer Когда я использую свой собственный класс NSView напрямую, без иерархии NSView, я могу посмотреть все. Где ошибка?

Извините, мой плохой английский и спасибо

...