2

Как сделать фон IKImageBrowserView прозрачным? Кажется, в дизайне интерфейса нет фонового цвета.Какао: Как сделать фон IKImageBrowserView прозрачным?

Что я пробовал:

Я никогда не использовал Core Animation, но я видел IKImageBrowserView есть метод setBackgroundLayer, поэтому я попытался следующие, которые не имели никакого эффекта:

CALayer* layer = [CALayer layer]; 
[layer setFrame: NSMakeRect(0, 0, 1000, 1000)]; 
[layer setBackgroundColor: CGColorCreateGenericRGB(0.0f, 0.0f, 0.0f, 0.0f)]; 
[browser setBackgroundLayer: layer]; 

Вот ссылка на класс для IKImageBrowserView.

+0

CALayer не имеет метода setBackgroundColor (компилятор должен был сказать вам это). http://developer.apple.com/iphone/library/documentation/GraphicsImaging/Reference/CALayer_class/Introduction/Introduction.html – peelman

+0

peelman: Да, это так. Он имеет свойство «backgroundColor», что означает, что у него есть «getColor» и (поскольку свойство readwrite) установщик setBackgroundColor: '. Помните, что доступ к свойствам (например, 'layer.backgroundColor = ...') в точности эквивалентен-i.e., Генерирует тот же код, что и выражение сообщения (например, '[layer setBackgroundColor: ...]' из вопроса). Кроме того, это вопрос Mac; остерегайтесь различий API между Cocoa и Cocoa Touch. –

+0

Макс. Вы также пропустили этот объект CGColor. Core Graphics следует правилам управления памятью Core Foundation: http://developer.apple.com/mac/library/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/ –

ответ

6

Ключевое значение кодирования. См: IKImageBrowserView's View Options Section

[_imageBrowser setValue:[NSColor colorWithDeviceRed:0.0 green:0.0 blue:0.0 alpha:0.0] forKey:IKImageBrowserBackgroundColorKey]; 

Source.

+0

Отлично, спасибо! Я вызвал это в awakeFromNib с моего контроллера IKImageBrowserView, и он сработал. – Max

+0

Хотя это * работает *, если вы задаете цвет фона прозрачному цвету, imageBrowserView больше не будет рисовать выделение выделения вокруг выбранных изображений, независимо от того, какой цвет вы установили для значения IKImageBrowserSelectionColorKey. Из того, что я могу найти, прозрачный фон исключает возможность выделения подсветки. – Bryan