如何更改Cocoa应用程序的标题栏颜色?

时间:2013-03-11 05:56:04

标签: macos cocoa window

我需要在OS X中更改应用程序的标题栏颜色。我最好想要一个涉及Cocoa或Carbon的解决方案,但如果有必要我可以做其他场所。从本质上讲,我的客户希望标题栏是黑色,而不是灰色。我知道这是可能的,因为OS X的Reminders应用程序可以做到这一点,Firefox也有人物角色和带有主题的谷歌浏览器。

我知道这有可能破坏用户体验,我考虑过其他选择,但这是客户想要的方式,我需要提供。我不能真正使用标题栏窗口,因为窗口已经设计好了,我确信这会比简单地改变窗口颜色更能消除用户体验。

任何想法都会受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

查看Apple's Core Data Stickies sample app

1. Create borderless window.

- (id)initWithContentRect:(NSRect)contentRect 
                styleMask:(unsigned int)styleMask 
                  backing:(NSBackingStoreType)backingType 
                    defer:(BOOL)flag
{
    if (self = [super initWithContentRect:contentRect
                                styleMask:NSBorderlessWindowMask 
                                  backing:backingType 
                                    defer:flag]) {
        [self setBackgroundColor:[NSColor yellowColor]];
        [self setHasShadow:YES];
    }
    return self;
}

- (BOOL)canBecomeKeyWindow { return YES; }  

2. Place view on that window and implement custom title bar.

enter image description here
 输出

enter image description here