J'ai des problèmes avec une vue d'hébergement de couches. Cette version de initWithFrame:
fonctionne comme prévu (la vue est rempli noir) fournissant « Wants Core Animation couche » est sélectionnée dans Interface Builder:L'affichage de l'hébergement de couches n'affiche pas
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
[self setWantsLayer:YES];
[[self layer] setBackgroundColor:CGColorGetConstantColor(kCGColorBlack)];
[[self layer] setContents:[NSImage imageNamed:NSImageNameBonjour]];
}
return self;
}
Je veux être en mesure de configurer l'affichage par programme si je veux supprimer la confiance dans Interface Builder. Voici la deuxième version qui est destinée à atteindre cet objectif. Cela ne fonctionne pas. La vue reste la même couleur que la vue parent:
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
CALayer *rootLayer = [CALayer layer]; //Added this line,
[self setLayer:rootLayer]; //and this line only
[self setWantsLayer:YES];
[[self layer] setBackgroundColor:CGColorGetConstantColor(kCGColorBlack)];
[[self layer] setContents:[NSImage imageNamed:NSImageNameBonjour]];
}
return self;
}
Je copié le code de la documentation et cherché sur le web et tous les exemples que je trouvais fait exactement cela, mais cela ne fonctionne pas!
Qu'est-ce que je fais mal?