如何将NSGradient设置为NSWindow背景

时间:2012-08-11 13:16:38

标签: macos cocoa nswindow nsgradient

我是cocoa的新手我尝试将NSGradient设置为NSWindow背景但对我来说太难了......我试过这段代码

NSGradient *gradient = [[NSGradient alloc] initWithStartingColor:[NSColor orangeColor] endingColor:[NSColor lightGrayColor]];
NSRect windowFrame = [self frame];
[gradient drawInRect:windowFrame angle:90];

但它不起作用......将NSGradient设置为NSWindow的任何其他方式......

1 个答案:

答案 0 :(得分:3)

您可以通过继承NSWindow的视图来实现。

创建新窗口视图的类(例如,标题为WindowViewSubclass)。

然后 .h 文件应如下所示:

#import <Cocoa/Cocoa.h>

@interface WindowViewSubclass : NSView {

}

@end

.m 文件:

#import "WindowViewSubclass.h"

@implementation WindowViewSubclass

- (void)drawRect:(NSRect)dirtyRect
{
    NSGradient *gradient = [[NSGradient alloc] initWithStartingColor:[NSColor orangeColor] endingColor:[NSColor lightGrayColor]];
    NSRect windowFrame = [self frame];
    [gradient drawInRect:windowFrame angle:90];
}

@end

现在选择窗口视图并转到Identity Inspectory - &gt;自定义类 - &gt;并选择这样的类:

Screenshot

<强>结果:

Result image