我希望复制以下CSS代码获得的效果:
background: white url(./img/background.png) no-repeat;
我已经编写了NSView的子类并以这种方式覆盖drawRect
:
- (void)drawRect:(NSRect)dirtyRect
{
dirtyRect = [self bounds];
[[NSColor whiteColor] setFill];
NSRectFill(dirtyRect);
[[NSColor colorWithPatternImage:[NSImage imageNamed:@"background.png"]] setFill];
NSRectFill(dirtyRect);
}
(我为我糟糕的英语道歉)
答案 0 :(得分:4)
查看NSImage
class reference。可以使用drawInRect:fromRect:operation:fraction:和drawAtPoint:fromRect:operation:fraction:绘制图像。
所以你可以用这个:
[[NSImage imageNamed:@"background.png"] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1]; // Passing NSZeroRect causes the entire image to draw.
取而代之的是:
[[NSColor colorWithPatternImage:[NSImage imageNamed:@"background.png"]] setFill];
NSRectFill(dirtyRect);
答案 1 :(得分:0)
只需使用NSImage drawInRect:fromRect:operation:fraction:
在视图中绘制图像,而不是使用图案颜色填充矩形。