У меня проблемы с представлением слоя размещения.Эта версия initWithFrame:
работает должным образом (представление заполнено черным цветом), при условии, что в Интерфейсном Разработчике выбран «Wants Core Animation Layer»:
- (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;
}
Я хочу иметь возможность настроить представление программно, поэтомухочу удалить зависимость от Interface Builder.Ниже приводится вторая версия, которая предназначена для достижения этой цели.Это не работаетПредставление остается того же цвета, что и родительское представление:
- (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;
}
Я скопировал код из документации и выполнил поиск в Интернете, и все найденные примеры сделали именно это, но это не работает!
Что я делаю не так?