Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Ivaner00
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 35
#1

Цвет Toolbar

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

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

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

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

Цвет точки на ImageView по координатам
Доброго времени суток. Подскажите, как получить цвет точки на определенном...

Как полностью изменить цвет Back кнопки в Navigation Bar ?
Добрый день! NSDictionary *attributes = ,UITextAttributeTextColor, nil]; ...

Цвет ToolBar в XP
Добрый день. Столкнулся с такой проблемой: при запуске моей программы в XP,...

2
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 27
Регистрация: 28.04.2013
Сообщений: 2,449
Записей в блоге: 10
Завершенные тесты: 2
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

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

Изменить цвет RichEdit и ToolBar
Подскажите как изменить цвет RichEdit? Но только не те цвета который предлагает...

Цвет надписей под кнопками ToolBar
Как изменить цвет надписей под кнопками ToolBar? Обычные манипуляции в...


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

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

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