Macos 如何获取NSImageView以显示白色背景的PDF?

Macos 如何获取NSImageView以显示白色背景的PDF?,macos,cocoa,nsimageview,Macos,Cocoa,Nsimageview,我在左下角有一个红色背景的NSImageView。在屏幕截图中,它显示了一个PDF文档 我希望文档的形状用白色填充,相反,它是透明的,红色背景在文档中渗透。如何强制PDF不透明 或者更一般的问题,如何让NSImageView用纯色填充透明图像。我目前的策略是创建一个具有白色背景的相同大小的新图像,并在顶部绘制原始图像,然后在图像视图中使用新图像。有更好的办法吗 NSImage* newImage = [[NSImage alloc] initWithSize:[image size]]; [ne

我在左下角有一个红色背景的NSImageView。在屏幕截图中,它显示了一个PDF文档

我希望文档的形状用白色填充,相反,它是透明的,红色背景在文档中渗透。如何强制PDF不透明

或者更一般的问题,如何让NSImageView用纯色填充透明图像。我目前的策略是创建一个具有白色背景的相同大小的新图像,并在顶部绘制原始图像,然后在图像视图中使用新图像。有更好的办法吗

NSImage* newImage = [[NSImage alloc] initWithSize:[image size]];
[newImage lockFocus];
[[NSColor whiteColor] set];
CGRect rc = NSMakeRect(0,0,[newImage size].width, [newImage size].height);
NSRectFill(rc);
[image drawInRect:rc];
[newImage unlockFocus];
image = newImage;

为什么不使用PDFKit呢?也就是说,文件中的背景可能不是白色的。默认情况下,只有查看器显示白色。它可能是一个透明或未定义的背景。另一个解决方案是进行一些视图分层(而不是CALayer)或简单地绘制到自定义视图中。该视图也可以很容易地构成子视图。可能性是无穷的