Я пишу приложение cocoa, которое имеет NSWindow. Я хочу изменить цвет фона окна на определенный цвет. Но свойства окна в инспекторе предоставляют только альтернативу "Textured Window". Как я могу сделать цвет окна по желанию?
Как присвоить NSWindow определенный цвет фона
Ответ 1
Попробуйте вызвать метод экземпляра setBackgroundColor: с цветом в вашем экземпляре окна. Что в имени..;)
Вот так:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Option 1
[self.window setBackgroundColor: NSColor.whiteColor];
// Option 2 - using dot syntax
self.window.backgroundColor = NSColor.whiteColor;
}
Ответ 2
Самый простой способ изменить фон окна - установить его непосредственно в ваш .xib файл.
Нет кода вообще:
- Выберите свое окно (класс NSWindow должен появиться в поле Class)
- Нажмите кнопку [+] в соответствии с атрибутами времени выполнения пользователя
- Введите "backgroundColor" и выберите "Цвет"
Ответ 3
Пока вы хотите изменить цвет фона области содержимого, а не фрейм и панель инструментов, вам не нужно подклассы NSWindow
. То, что вам нужно сделать, это подкласс NSView
и сделать ваш пользовательский вид нарисовать нужный цвет, а затем установить экземпляр этого класса в виде содержимого содержимого окна.
Кроме того, вы можете уйти с установкой без полей NSImageView
или NSColorWell
в качестве представления содержимого, но я не уверен, что Apple означает, что для тех, у кого есть subviews. Если нет, вам придется оставить свое окно пустым.
Тем не менее, вы должны быть уверены, что пользовательский цвет фона подходит. Почти всегда, это не так, и вы должны придерживаться вида Aqua или HUD.
Ответ 4
Вы должны подклассифицировать NSWindow, чтобы изменить фон, а затем переопределить реализацию для
- (id)initWithContentRect:(NSRect)contentRect
styleMask:(NSUInteger)styleMask
backing:(NSBackingStoreType)bufferingType
defer:(BOOL)flag
В качестве примера см. Mat Gemmell HUDWindow: http://mattgemmell.com/2006/03/12/hudwindow