Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 我如何给这样的应用程序窗口着色?_Macos_Cocoa_Tint - Fatal编程技术网

Macos 我如何给这样的应用程序窗口着色?

Macos 我如何给这样的应用程序窗口着色?,macos,cocoa,tint,Macos,Cocoa,Tint,我对OSX开发非常陌生 如何将应用程序着色为深灰色,就像这样 可以从interface builder执行此操作吗?如果没有,如何从代码中执行此操作?要更改窗口标题栏颜色,请将窗口设置为IB中的纹理。然后在相应的视图控制器/应用程序代理中更新窗口颜色 NSColor *grayColor = [NSColor colorWithCalibratedRed:64/255.0f green:64/255.

我对OSX开发非常陌生

如何将应用程序着色为深灰色,就像这样


可以从interface builder执行此操作吗?如果没有,如何从代码中执行此操作?

要更改窗口标题栏颜色,请将窗口设置为IB中的纹理。然后在相应的视图控制器/应用程序代理中更新窗口颜色

NSColor *grayColor = [NSColor colorWithCalibratedRed:64/255.0f
                                               green:64/255.0f
                                                blue:64/255.0f
                                               alpha:1.0];
[self.window setBackgroundColor:grayColor];
现在窗口将显示以下内容:

使用工具栏:

请注意,当“窗口”设置为“纹理化”时,整个窗口将被纹理化。我对视图进行了子分类,并将背景设置为白色:

- (void)drawRect:(NSRect)dirtyRect
{
    [super drawRect:dirtyRect];
    [[NSColor whiteColor] setFill];
    NSRectFill(dirtyRect);
}
否则窗口将显示以下内容:


太棒了!谢谢你的精彩解释!只是一个小细节。该窗口有一个NSToolbar。我使用了你的答案,视图本身被着色,但窗口本身没有着色。@RubberDuck我之前提到过,当你设置窗口颜色时,它将应用于所有地方,因此你需要根据需要对视图进行子类化并设置背景色。不,我说的是窗口。这扇窗户是不着色的。它仍然是灰色的。视图变成深灰色,但窗口不是。@RubberDuck我想你忘了在Interface Builder中将窗口设置为纹理。