2010-11-10 2 views
0

У меня есть стандартный набор NSPanel для HUD-стиля. Я хочу изменить цвет фона, прежде всего потому, что хочу иметь панель инструментов и не вижу никакого способа сделать стандартный стандартный nstoolbar хорошим на HUD или способом настройки фона панели инструментов напрямую.Какао HUD Окно: удалить прозрачность?

Я знаю множество способов создания полностью настраиваемого окна и использовать их в других обстоятельствах. В этом случае я хочу все хорошие вещи, которые предоставляет окно, но я просто не хочу прозрачности. Интересно, что я могу изменить цвет фона, но не альфу. Установка значений альфа не влияет на окно.

Кто-нибудь решил эту проблему раньше?

ответ

0

установить панель в содержание вида (в просто нажмите внутри панели, чтобы выбрать его, а не Titlebar) подкласса SGPanelView и сделать это SGPanelView с этой реализации метода DrawRect вашего класса: SGPanelView, подкласс NSView:

- drawRect:(NSRect)dirtyrect { 
    [[NSColor blackColor] set]; 
    [NSBezierPath fillRect:[self bounds]]; 
} 

Должно работать. Если вы не работаете, попробуйте изменить bounds на frame.


Для получения дополнительной информации см. http://developer.apple.com/library/mac/#documentation/cocoa/reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html.

+0

Нельзя - панель инструментов на самом деле не является частью чертежа contentView. Панель инструментов напрямую касается фона окна, а не содержимого. – SG1

+0

Используйте '[[window contentView] superView]', чтобы получить представление окна. Обратите внимание, что вы должны изменить прямоугольник, потому что он включает строку заголовка. – 2010-11-15 19:33:17

Смежные вопросы