Objective c 在MacOSX上画一个正方形?
我想画一个小正方形,是4x4像素。我希望能够在运行时调整它的颜色(不像颜色井或任何东西,用户不需要能够)。我一直在用Objective c 在MacOSX上画一个正方形?,objective-c,cocoa,macos,Objective C,Cocoa,Macos,我想画一个小正方形,是4x4像素。我希望能够在运行时调整它的颜色(不像颜色井或任何东西,用户不需要能够)。我一直在用NSImage,但这会占用很多资源,我无法调整,在Photoshop中制作一个不同的小色样来改变它以适应任何新的颜色是一个巨大的痛苦,因此它不再适合。如何在Mac OS X上做到这一点?类似的东西。我还没有编译它,但这是在Mac上使用石英绘制任意形状的基本方法: - (void)drawRect:(NSRect)rect { [[NSColor redColor] set];
NSImage
,但这会占用很多资源,我无法调整,在Photoshop中制作一个不同的小色样来改变它以适应任何新的颜色是一个巨大的痛苦,因此它不再适合。如何在Mac OS X上做到这一点?类似的东西。我还没有编译它,但这是在Mac上使用石英绘制任意形状的基本方法:
- (void)drawRect:(NSRect)rect {
[[NSColor redColor] set];
CGPathRef path = CGPathCreateMutable();
CGPathAddRect(path, NULL, CGRectMake(0, 0, 4, 4));
CGContextStrokePath([NSGraphicsContext currentContext], path);
CGPathRelease(path);
}
在Mac OS X上以坐标0,0(左下角)绘制4x4正方形的最简单方法是:
NSRectFill(NSMakeRect(0.0, 0.0, 4.0, 4.0));
设置此类绘图所用颜色的最简单方法是:
[[NSColor colorWithCalibratedRed:... green:... blue:... alpha:1.0] set];
)() 这很好,有没有办法将图形放置在视图上?或者清除绘图?@Regan如果你想要一个只绘制4x4正方形的视图,你应该将
NSView
子类化,并按照@RobNapier的回答实现drawRect:
(尽管他忽略了子类化部分,因为他可能认为你知道那么多)。尽管如此,如果你的整个视图都是一种颜色,只需使用标准NSView并设置背景色。更简单、更高效。NSColor没有名为+red的方法。
[[NSColor redColor] set];
[NSBezierPath fillRect:NSMakeRect(0,0,4,4)];