2010-03-16 146 views
1

如何更改窗口的窗口标题颜色。我想将默认的黑色更改窗口标题颜色

颜色文本更改为某种其他颜色。

+2

为什么?这是一个糟糕的主意,没有简单的解决方案。谨慎解释你的更多目标? – 2010-03-16 10:57:01

+0

我的窗口背景颜色是黑色的,所以我希望它使用具有其他颜色的文本进行补偿。有没有解决办法,或者我只能改变我的背景颜色。 – boom 2010-03-16 11:11:39

回答

1

退房:http://www.cocoadev.com/index.pl?NSWindow

我发现下面的信息:

如何更改标题栏文字 的颜色吗?是否有 NSWindowTitleBar?我似乎无法通过 在Google上找到任何关于此的信息。 - JasonTerhorst

NSTitledFrame?(private)has _drawTitleStringIn:withColor:您可以覆盖此方法。

CocoaMovieTheater? (http://www.zathras.de/)包括 窗口框架的专用标题 类。 - Afunishi

请注意,我拍下了MovieTheatre? 很久以前,但是因为这个页面好像是 要把这么多人带到我的网站, 我把我以前用来做 的那个班级分别做成了自定义窗口的颜色。查找 它在 http://www.zathras.de/angelweb/sourcecode.htm#UKCustomWindowFrame 。哦,和Afunishi,请不要 直接链接到我的 网站上的档案,链接到源代码页 ,其中包含每个 他们的描述。谢谢! - UliKusterer

但是,强烈建议不要使用私有方法或重写私有方法。 Apple可能随时更改这些内容,并且您的应用程序将无法正常工作(!)。

您的其他选择是照顾所有的标题栏绘图自己,但这并不容易。

我会建议提出一个替代设计,并在http://bugreport.apple.com申请该功能提交错误报告,确保详细解释为什么它对您很重要。

+0

感谢您的建议。 – boom 2010-03-16 14:12:21

2

我有点晚...但我找到了适合我的解决方案,可能也适合你。

唯一的问题是,窗口的内容视图不会超出界限。如果可以的话,你只需在内容视图中添加一个NSTextView并将其放置在窗口标题所在的位置(内容视图的边界之外)...

嗯,就这样做!通过代码,您只需调整contentView的框架矩形。而已。没有魔法,只是简单的东西。

不要忘记把所有的意见都从窗口底部,而不是顶部!

NSRect R = [self.window.contentView frame]; 
R.size.height += 20; 
[self.window.contentView setFrame:R];