我有一个NSAttributedString,我想将其绘制到CGImage中,以便稍后我可以将CGImage绘制到NSView中。这是我到目前为止所做的:
// Draw attributed string into NSImage
NSImage* cacheImage = [[NSImage alloc] initWithSize:NSMakeSize(w, h)];
[cacheImage lockFocus];
[attributedString drawWithRect:NSMakeRect(0, 0, width, height) options:0];
[cacheImage unlockFocus];
// Convert NSImage to CGImageRef
CGImageSourceRef source = CGImageSourceCreateWithData(
(CFDataRef)[cacheImage TIFFRepresentation], NULL);
CGImageRef img = CGImageSourceCreateImageAtIndex(source, 0, NULL);
我没有使用 - [NSImage CGImageForProposedRect:context:hints]因为我的应用必须使用10.5 sdk。
当我使用CGContextDrawImage将其绘制到我的NSView中时,它会在文本周围绘制透明背景,从而导致窗口后面的内容显示出来。我想我想创建一个剪贴蒙版,但我无法弄清楚如何做到这一点。