2012-03-01 3 views
4

Я хочу иметь более или менее стандартный NSWindow с панелью инструментов и все такое, но я хочу, чтобы контентный вид был прозрачным, чтобы я мог видеть его. В то же время я хочу сохранить светло-серый контур окна, а также тень. НО Я хочу избежать «внутренней» тени, которую я получаю с панели инструментов внутри области просмотра контента.Прозрачный NSWindow, но со стандартной границей и тенью

То, что я пробовал до сих пор, заключается в том, чтобы установить цвет фона окна на полупрозрачный цвет, а также установить непрозрачность NO. Проблема в том, что граница окна исчезает с альфой самого фона, и чем больше прозрачности у меня на фоне, тем больше тень панели инструментов появляется в виде содержимого.

Как правило, тени и границы окна изменяются в зависимости от прозрачности содержимого, которое я полностью понимаю. Но мне нужно поведение, в котором он сохраняет границу и тень, как если бы это было полностью непрозрачное окно, а затем я хочу, чтобы область просмотра содержимого была прозрачной.

Я не уверен, что мне нужно сделать концептуально, чтобы заставить его работать. Может быть, мне нужно нарисовать границу окна, может быть, нет. Может быть, мне нужно нарисовать тень, а может и нет.

Есть ли кто-нибудь, кто знает, как это построить? Мне не нужны точные кодовые данные, а то, что мне нужно делать.

Я ценю любой вход!

+0

Вы когда-нибудь понять это? Я столкнулся с той же проблемой. –

ответ

0

Подкласс класса NSView переопределяет метод drawRect: (NSRect) dirtyRect и задает цвет представления как clearcolor, теперь задайте класс вашего представления содержимого как подкласс NSView.

3

Я dont't знаю, если это имеет какое-то значение для вас после того, как все это время, но попробовать:

[aWindow setOpaque:NO]; 
[aWindow setBackgroundColor:[NSColor clearColor]]; 
Смежные вопросы