Персонализиране на външния вид на прозореца в стил Mac OS X NSWindow, Apple, разработчик на Xcode
Обикновено повечето аспекти на външния вид на прозореца се конфигурират в Interface Builder. Понякога обаче може да се наложи да създадете прозорец програмно или да промените външния му вид, след като е бил създаден.
Персонализиране на стила на прозореца
Периферните елементи, които един прозорец показва, се определят от неговия стил. Въпреки че не можете да осъществявате достъп до тях или да ги манипулирате директно, можете да определите кога даден прозорец се инициализира, като им предоставите стилова маска в инициализатора. Има четири възможни стилови елемента, които комбинират своите стойности на маска с помощта на оператораC побитово ИЛИ:
Без заглавие и граници | NSBorderlessWindowMask |
Заглавна лента | NSTitledWindowMask |
бутон за затваряне | NSClosableWindowMask |
Бутон за минимизиране | NSMiniaturizableWindowMask |
Преоразмеряване, граници или прозорец | NSResizableWindowMask |
С метална фонова текстура | NSTexturedBackgroundWindowMask |
Чрез указване на NSBorderlessWindowMask нито един от тези стилови елементи няма да бъде използван.
Пример за задаване на маска на прозорец при зареждането му и задаване на бутона за затваряне в неактивно състояние, window1 е указател към NSWindow обект
Настройка на цвета и прозрачността на прозореца
Можете да зададете фоновия цвят и прозрачността на прозореца, като използвате съответно методите setBackgroundColor: и setAlphaValue:.
Можете да зададете цвета на фона на прозореца на прозрачен. Това не засяга заглавната лента на прозореца, а само прави фона на самия прозорец прозрачен, както е показано в следващия пример.
Резултат на фона на друг прозорец
Изгледите се поставят върху непрозрачни прозорци с прозрачен цвят на фоназапазвайки ги непрозрачни. Ако искате целият прозорец (включително заглавната лента и изгледите, разположени върху прозореца) да стане прозрачен, трябва да използвате setAlphaValue: .
Приложено към прозорец с контроли ще доведе до следния резултат:
Настройка на цветовото пространство на прозореца
Можете да зададете цвета на пространството на прозореца с помощта на setColorSpace:, можете също да извлечете текущото цветово пространство на прозореца с помощта на colorSpace
Следва пример, който пренася прозореца в сиво цветово пространство:
Резултатът е прозорец в сиви нюанси:
Регулиране на ширината на рамката на съдържанието на прозореца
Започвайки с Mac OS X версия 10.5, прозорците автоматично се текстурират с градиент, приложен към техния изглед отзад. Областта, върху която се изчертава градиентът, се определя автоматично. Понякога обаче това може да не работи правилно. Ако прозорците ви не изглеждат добре с автоматичното изчисляване на градиентите, изключете го, като извикате setAutorecalculatesContentBorderThickness:forEdge: със стойност NO и edge, докато автоматичното изчисляване не бъде деактивирано. Стойността на това свойство може да бъде извлечена с помощта на метода autorecalculatesContentBorderThicknessForEdge:.
Можете също да зададете и използвате дебелината на рамката на съдържанието ръчно, като използвате съответно setContentBorderThickness:forEdge: и contentBorderThicknessForEdge:.