Форум программистов, компьютерный форум CyberForum.ru

Цвет Toolbar - Objective-C

Восстановить пароль Регистрация
 
Ivaner00
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 35
16.10.2015, 13:20     Цвет Toolbar #1
Доброго времени, возникла такая проблема. кто может подсказать, как аппе по мак изменить цвет toolbar и titlebar?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2015, 13:20     Цвет Toolbar
Посмотрите здесь:

Visual Basic Как в ToolBar можно поменять цвет?
Toolbar в заголовке формы Objective-C
Ввести символы с клавиатуры. Цвет символов - белый, цвет фона - синий Assembler
Цвет надписей под кнопками ToolBar C++ Builder
Как полностью изменить цвет Back кнопки в Navigation Bar ? Objective-C
Delphi Цвет ToolBar в XP
Цвет точки на ImageView по координатам Objective-C
CorelDRAW Цвет абриса в цвет заливки автоматически при трассировке абрисом
Toolbar сверху Objective-C
Цвет фона, цвет текста в определённом EDIT и шрифт C++ WinAPI
Как преобразовать цвет System.Drawing.Color в цвет API (UINT) Visual Basic .NET
Как изменить цвет одного из элементов ToolBar Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
2ima
☆ Форумчанин(FSC)☆
 Аватар для 2ima
909 / 288 / 9
Регистрация: 28.04.2013
Сообщений: 2,337
Записей в блоге: 10
Завершенные тесты: 1
18.10.2015, 23:12     Цвет Toolbar #2
Вроде через недокументированный класс NSThemeFrame можно поменять цветовую гамму. Покопайте в эту сторону
Ivaner00
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 35
19.10.2015, 11:24  [ТС]     Цвет Toolbar #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
Yandex
Объявления
19.10.2015, 11:24     Цвет Toolbar
Ответ Создать тему
Опции темы

Текущее время: 23:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru