2010-11-27 2 views
5

내 QuickLook 플러그인은 문서에 대한 HMTL 미리보기를 생성합니다. 플러그인 번들에 저장된 이미지를 표시해야합니다. 단순히 imageNamed: 메서드를 사용하여 NSImage 클래스의 인스턴스를 가져 오는 것은 작동하지 않습니다. 그것을 어떻게 성취 할 수 있습니까? 그 결과는QuickLook 플러그인 리소스에 액세스하는 방법은 무엇입니까?

Quick Look 생성기는 CFPlugIn 스타일 번들로 설계되었습니다.

설명서에 기록되어 있습니까?

답변

4

, 당신은 CFBundle에 플러그인하여 액세스 할 수 있습니다

QLThumbnailRequestGetGeneratorBundle 또는 QLPreviewRequestGetGeneratorBundle

당신이 번들이 있으면, 당신은 사용하여 리소스 파일 URL에 대한 조회 할 수 있습니다

CFBundleCopyResourceURL

7

저는 + imageNamed가 NSBundle의 + mainBundle 메소드를 사용한다고 믿습니다. 이 경우 플러그인의 번들이 아닙니다.

내가 직접 플러그인의 번들을 요청해야합니다 생각 :

NSString * path = [[[NSBundle bundleForClass:[MyPluginClass class]] pathForResource:@"MyImage" ofType:@"tif"]; 
NSImage * image = [[[NSImage alloc] initWithContentsOfFile:path] autorelease]; 

이 브라우저에 기록 된, 그래서 정확하지 않을 수 있습니다. :-)

플러그인 코드 내에서
+1

감사합니다. 그것은 작동하고 매우 도움이되는 것으로 밝혀졌습니다. 그냥 이전에 언급 한 MyPluginClass 클래스가 실제 Quicklook 플러그인을 구현하기 위해 특별히 작성된 클래스 일 필요는 없다는 것을 알 수있는이 스레드를 발견 할 수있는 사람을 추가하고 싶습니다. Quicklook 플러그인 번들에 포함시켜야합니다. – dzolanta

+0

주 : ARC와 함께 사용하려면 -autorelease 호출을 제거해야합니다. –