2010-11-27 10 views
5

My QuickLookプラグインがドキュメントのHMTLプレビューを生成します。私はプラグインバンドルに保存された画像を表示する必要があります。単純にimageNamed:メソッドを使用してNSImageクラスのインスタンスを取得することはできません。どのように達成することができますか?QuickLookプラグインのリソースにアクセスするには?

クイックルックジェネレータは、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呼び出しを削除する必要があります。 –

関連する問題