2009-08-26 1 views
2

Я работаю с NSImage, который исходит из PDF. Когда я изначально создаю образ, он имеет только один NSImageRep и это NSPDFImageRep. Это хорошо. Я могу работать с ним. Я могу узнать, сколько страниц у него есть, и перейти на указанную страницу, и нарисовать ее и т. Д.Как избежать NSCachedImageRep

Проблема в том, что как только я повернусь спиной, она превратится в NSCachedImageRep, Кажется, у вас несколько страниц. Теперь, если я сохраняю PDFImageRep в отдельной переменной, он отслеживается, но он больше не связан с изображением, поэтому, когда я рисую изображение, он все еще находится на той же странице.

Что мне не хватает?

спасибо.

ответ

2

Вам необходимо вызвать [image setDataRetained: YES] на изображении, чтобы ваши исходные данные в формате PDF сохранялись, иначе он будет кэшироваться в растровое изображение.

Если у вас все еще есть проблемы, вы можете полностью отключить кеширование с помощью [imageCacheMode: NSImageCacheNever].

0

Попробуйте по 10.6. Проблема, вероятно, испарилась.

Подробнее об изменениях NSImage см. В AppKit release notes.

+1

Это замечательно, за исключением того, что у меня есть много пользователей (и сотрудник!), Которые все еще используют 10.3 !!! –