Форум программистов, компьютерный форум, киберфорум
Наши страницы

Objective-C

Войти
Регистрация
Восстановить пароль
 
Ivaner00
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 35
#1

Цвет Toolbar - Objective-C

16.10.2015, 13:20. Просмотров 400. Ответов 2
Метки нет (Все метки)

Доброго времени, возникла такая проблема. кто может подсказать, как аппе по мак изменить цвет toolbar и titlebar?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2015, 13:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Цвет Toolbar (Objective-C):

Toolbar сверху - Objective-C
Собственно вопрос. Как замутить в Xcode тулбар именно так сверху?

Toolbar в заголовке формы - Objective-C
Как tool bar можно засунуть в title формы? И почему , когда я добавляю на форму tool bar - исчезает нижний border?

Цвет точки на ImageView по координатам - Objective-C
Доброго времени суток. Подскажите, как получить цвет точки на определенном ImageView по координатам? Есть один нюанс: у меня два...

Цвет ToolBar в XP - Delphi
Добрый день. Столкнулся с такой проблемой: при запуске моей программы в XP, цвет ToolBar'a становится равным цвету формы (clBtnFace), хотя...

Цвет 3-ёх точек в ToolBar - Программирование Android
Как поменять цвет этих точек?

Цвет надписей под кнопками ToolBar - C++ Builder
Как изменить цвет надписей под кнопками ToolBar? Обычные манипуляции в свойствах фонт изменение цвета желаемого результата не приносят.

2
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,431
Записей в блоге: 10
Завершенные тесты: 1
18.10.2015, 23:12 #2
Вроде через недокументированный класс NSThemeFrame можно поменять цветовую гамму. Покопайте в эту сторону
0
Ivaner00
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 35
19.10.2015, 11:24  [ТС] #3
спс, но стор, не пропускает, если использовать не документированные классы и методы

Добавлено через 2 часа 50 минут
вопрос малость меняется. с цветом фона разобрался, но теперь проблема цвет шрифта тайтлбара нужно поменять

Добавлено через 21 минуту
спс, задача решена
Создаем класс от NSView
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
@implementation MyTitleView
- (void)drawString:(NSString *)string inRect:(NSRect)rect {
    static NSDictionary *att = nil;
    if (!att) {
        NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
        [style setLineBreakMode:NSLineBreakByTruncatingTail];
        [style setAlignment:NSCenterTextAlignment];
        att = [[NSDictionary alloc] initWithObjectsAndKeys: style, NSParagraphStyleAttributeName,[NSColor whiteColor], NSForegroundColorAttributeName,[NSFont fontWithName:@"Helvetica" size:12], NSFontAttributeName, nil];
    
        
    }
    
    NSRect titlebarRect = NSMakeRect(rect.origin.x+20, rect.origin.y-4, rect.size.width, rect.size.height);
    
    
    [string drawInRect:titlebarRect withAttributes:att];
}
 
 
- (void)drawRect:(NSRect)dirtyRect
{
    NSRect windowFrame = [NSWindow  frameRectForContentRect:[[[self window] contentView] bounds] styleMask:[[self window] styleMask]];
    NSRect contentBounds = [[[self window] contentView] bounds];
    
    NSRect titlebarRect = NSMakeRect(0, 0, self.bounds.size.width, windowFrame.size.height - contentBounds.size.height);
    titlebarRect.origin.y = self.bounds.size.height - titlebarRect.size.height;
    
    NSRect topHalf, bottomHalf;
    NSDivideRect(titlebarRect, &topHalf, &bottomHalf, floor(titlebarRect.size.height / 2.0), NSMaxYEdge);
    
    NSBezierPath * path = [NSBezierPath bezierPathWithRoundedRect:self.bounds xRadius:4.0 yRadius:4.0];
    [[NSBezierPath bezierPathWithRect:titlebarRect] addClip];
    
    
    
//    NSGradient * gradient1 = [[NSGradient alloc] initWithStartingColor:[NSColor colorWithCalibratedWhite:0.0 alpha:1.0] endingColor:[NSColor colorWithCalibratedWhite:1 alpha:1.0]];
//    NSGradient * gradient2 = [[NSGradient alloc] initWithStartingColor:[NSColor colorWithCalibratedWhite:1 alpha:1.0] endingColor:[NSColor colorWithCalibratedWhite:0 alpha:1.0]];
    
    [path addClip];
    
    
    //    [[NSColor colorWithCalibratedWhite:0.00 alpha:1.0] set];
    //   [path fill];
    
    
//    [gradient1 drawInRect:topHalf angle:270.0];
//    [gradient2 drawInRect:bottomHalf angle:270.0];
    
    [[NSColor blackColor] set];
    NSRectFill(NSMakeRect(0, -4, self.bounds.size.width, 1.0));
    
    
    [self drawString:@"My Title" inRect:titlebarRect];
    
    
}
и в переопределении NSWindow
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@implementation MyWindow
 
-(id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag
{
    self=[super initWithContentRect:contentRect styleMask:aStyle backing:bufferingType defer:flag];
    if(self)
    {
        [self setOpaque:NO];
        [self setBackgroundColor:[NSColor colorWithPatternImage:[NSImage imageNamed:@"Titlebar BG"]]];
        NSTextField *text=[[NSTextField alloc]init];
        [[[self contentView]superview]addSubview:text];
        NSRect boundsRect=[[[self contentView]superview]bounds];
        MyTitleView *titleView = [[MyTitleView alloc]initWithFrame:boundsRect];
      
        
        [titleView setAutoresizingMask:(NSViewWidthSizable|NSViewHeightSizable)];
        
        [[[self contentView]superview]addSubview:titleView positioned:NSWindowBelow relativeTo:[[[[self contentView]superview]subviews] objectAtIndex:0]];
        
    }
    
 
    return self;
}
 
@end
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2015, 11:24
Привет! Вот еще темы с ответами:

Как в ToolBar можно поменять цвет? - Visual Basic
Как в ToolBar можно поменять цвет. у иконок в ImageList фон меняю, а в ToolBar как?

Как изменить цвет одного из элементов ToolBar - Программирование Android
Как изменить цвет вот этой части ToolBar'a?

Изменить цвет формы в цвет пикселя под курсором по клику мыши - C#
Есть код. Но форма выкрашивается только в серый цвет и такой и остается, несмотря на изменение цвета пикселя под курсором. Подскажите куда...

Как преобразовать цвет System.Drawing.Color в цвет API (UINT) - Visual Basic .NET
Всем здравствуйте. <DllImport("gdi32.dll")> _ Public Shared Function CreatePen(ByVal fnPenStyle As Integer, ByVal nWidth As Integer,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.