我想复制以下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);
}
(我为我的英语不好而道歉)
最佳答案
看一下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);
关于objective-c - 如何使NSView的背景图像不重复?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11231874/