我正在使用来自 PDF 的 NSImage。当我最初创建图像时,它只有一个 NSImageRep,即 NSPDFImageRep。这很好。我可以使用它。我可以找出它有多少页,然后转到指定的页面,然后绘制它等等。
问题是,我一转身,它就变成了一个 NSCachedImageRep,它似乎没有多个页面。现在,如果我将 PDFImageRep 保存在一个单独的变量中,它会被跟踪,但它不再与图像相关联,所以当我绘制图像时,它仍然在同一页面上。
我错过了什么?
谢谢。
我正在使用来自 PDF 的 NSImage。当我最初创建图像时,它只有一个 NSImageRep,即 NSPDFImageRep。这很好。我可以使用它。我可以找出它有多少页,然后转到指定的页面,然后绘制它等等。
问题是,我一转身,它就变成了一个 NSCachedImageRep,它似乎没有多个页面。现在,如果我将 PDFImageRep 保存在一个单独的变量中,它会被跟踪,但它不再与图像相关联,所以当我绘制图像时,它仍然在同一页面上。
我错过了什么?
谢谢。
您需要在图像上调用 [image setDataRetained:YES],以便保留原始 PDF 数据,否则将被缓存到位图。
如果您仍然遇到问题,您可以使用 [image setCacheMode:NSImageCacheNever] 完全关闭缓存。
在 10.6 上尝试一下。问题可能已经烟消云散了。
有关 NSImage 更改的详细信息,请参阅AppKit 发行说明。