#macos #cocoa #tint
#macos #cocoa #изменение цвета
Вопрос:
Я новичок в разработке OSX.
Как мне окрасить приложение в темно-серый цвет, как это было сделано?
возможно ли это сделать с помощью Interface Builder? Если нет, то как мне сделать это из кода?
Ответ №1:
Чтобы изменить цвет строки заголовка окна, задайте текстурирование окна в IB. Затем в соответствующем контроллере представления / делегате приложения обновите цвет окна.
NSColor *grayColor = [NSColor colorWithCalibratedRed:64/255.0f
green:64/255.0f
blue:64/255.0f
alpha:1.0];
[self.window setBackgroundColor:grayColor];
Теперь окно должно выглядеть так :
С помощью панели инструментов:
Обратите внимание, что когда окно установлено как текстурированное, текстурированным будет все окно. Я подклассировал представление и установил фон в белый цвет :
- (void)drawRect:(NSRect)dirtyRect
{
[super drawRect:dirtyRect];
[[NSColor whiteColor] setFill];
NSRectFill(dirtyRect);
}
Иначе окно хотело бы этого :
Комментарии:
1. Фантастика! Спасибо за потрясающее объяснение!
2. Только одна маленькая деталь. В окне есть панель инструментов. Я использовал ваш ответ, и сам вид был подкрашен, но не само окно.
3. @RubberDuck Я упоминал ранее, что когда вы устанавливаете цвет окна, он будет применяться везде, поэтому вам нужно подклассировать представления и установить цвет фона по мере необходимости.
4. Нет, я говорю об окне. Окно — это то, которое не тонируется. Оно остается серым. Виды становятся темно-серыми, но не окно.
5. @RubberDuck Я думаю, вы забыли сделать окно текстурированным в конструкторе интерфейса.