2013-11-25 28 views
7

QuickLookプラグインをビルドしています。ユーザーがスペースバーを押すとポップアップするウィンドウの幅を変更したい。QuickLook Pluginのウィンドウサイズを設定する

高さと幅がカスタマイズ可能なプロジェクトのinfo.plistファイルには2つのキーがあります。これらの値を変更しても、プレビューウィンドウのサイズを希望のサイズにすることはできません。

私は他に何を試すべきか分かりません。何か案が?

ありがとうございます!

答えて

4

私は少しこれを掘るだろう。私は以下の提案を試していないので、誰も希望を得ることはできません。手動options辞書の引数をチェックしkQLPreviewPropertyWidthKeykQLPreviewPropertyHeightKeyキーは確かに希望CFNumber値にマップされていることを確認かもしれませんが、何かする前に

OSStatus (*GeneratePreviewForURL)(
    void *thisInterface, 
    QLPreviewRequestRef preview, 
    CFURLRef url, 
    CFStringRef contentTypeUTI, 
    CFDictionaryRef options 
); 

:私はあなたが発電機のコールバックを使用していると仮定します。これらのプロパティのそれぞれを参照

、アップルQuickLookのプログラミングガイドは言う:このプロパティがヒントであることを

注意を。クイックルックは、プレビューの種類によっては自動的に幅を に設定することがあります。この値は、CFNumberオブジェクトにカプセル化された である必要があります。

編集:。。あなたのプレビュー表示が柔軟であれば、あなただけの思考上記の文のとおり、クイックルックがあなたのサイズヒントを称えるれるプレビュータイプを見つけてみてください)nmを実行

QuickLookフレームワークのバイナリには、上記の幅と高さのキーと同様に、いくつかの文書化されていないkQLPreviewProperty--の定数が明らかになりました。私の注意を引いたのはkQLPreviewPropertyAutoSizeKeyでした。サイズを自動的にに設定するためのヒントを無視するというアップルの声明を思い出して、これは重要なのでしょうか? QuickLook.framework/Headers/QLBase.hのコンベンションに続いて、あなたは、あなたがoptions辞書でそのプロパティキーでCFNumber 0を関連付ける試みることができる

extern const CFStringRef kQLPreviewPropertyAutoSizeKey; 

を宣言してみてください。その他の文書化されていない鍵があります(kQLPreviewPropertyAttributesKeyなど)。あなたが言及戻るInfo.plistファイルへ

、アップルsaysこれらのキーQLPreviewWidthQLPreviewHeightについて:

この数は、クイックルックに プレビューの(ポイント単位)幅のためのヒントを提供します。 ジェネレータがプレビューを作成するのに時間がかかりすぎて になると、これらの値が使用されます。(重点追加)

これは、誰かがあなたのジェネレータでsleep()を呼び出すという恐ろしい提案をする場所です。しかし、私はという理由で困惑しています。なぜなら、アップルは、発電機の待ち時間に応じてサイズのヒントに従うことにします。 (?)

編集:はまた、上記のステートメントは、Info.plistのヒントがポイント(ないピクセルで表現しなければならないと言う注意してください)、ユーザーの画面の解像度に依存unit

+1

ジェネレータは画像またはHTMLを作成するので、プレビューはデフォルトの自然な大きさに基づいていますか? –

+0

@Keniger、それは面白いです。 HTMLのプレビューでCSSのmin-widthプロパティがどのような影響を及ぼすのだろうかと思います。 – jrodatus

+0

助けてくれてありがとう。私はすでに最小幅を追加しようとしました。これは、 "HTML"自体のサイズを変更しますが、quicklookプラグインウィンドウのサイズは変更しません。窓は常に同じ大きさからです... – Andres

2

最近、私はQuick Look Pluginを自分で開発していましたが、HTML + CSSを使用して同じ問題に直面しました。 私の解決策は、Xcodeとqlmanageのプラグインを実行可能ファイルとしてテストするのではなく、から実際の.qlgeneratorを試してみることでした。

ユーザライブラリからジェネレータを呼び出すとき、クイックルックウィンドウは、* -Info.plistで指定したのとまったく同じようにサイズが変更されました。

+0

私はアップデートをありがとう! – Andres

関連する問題