私の QuickLook プラグインは、ドキュメントの HTML プレビューを生成します。プラグイン バンドルに保存されている画像を表示する必要があります。メソッドを使用しimageNamed:
てクラスのインスタンスを取得するだけでNSImage
は機能しません。どうすればそれを達成できますか?それは事実の結果ですか?
Quick Look ジェネレーターは、CFPlugIn スタイルのバンドルとして設計されています。
ドキュメントが言うように?
+imageNamed: は NSBundle の +mainBundle メソッドを使用していると思います。その場合、それはプラグインのバンドルではありません。
プラグインのバンドルに直接問い合わせる必要があると思います:
NSString * path = [[[NSBundle bundleForClass:[MyPluginClass class]] pathForResource:@"MyImage" ofType:@"tif"];
NSImage * image = [[[NSImage alloc] initWithContentsOfFile:path] autorelease];
これはブラウザで書かれたものなので、正確ではないかもしれません。:-)
プラグイン コード内で、プラグイン CFBundle にアクセスできます。
QLThumbnailRequestGetGeneratorBundle または QLPreviewRequestGetGeneratorBundle
バンドルを取得したら、次を使用してリソース ファイルの URL をクエリできます。
CFBundleCopyResourceURL