【问题标题】:How do I change a Cocoa application's title bar color?如何更改 Cocoa 应用程序的标题栏颜色?
【发布时间】:2013-03-11 05:56:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: macos cocoa window


    【解决方案1】:

    看看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.
    


    输出

    【讨论】:

    • 谢谢,但我确实说我不能使用标题栏/无边框窗口,因为应用程序窗口已经设计好了。不过,这是一种巧妙的方法。如果我不需要常规的 OS X 按钮,我可能会这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    相关资源
    最近更新 更多