4

PDF リンクの処理は Quicklook で利用できますか?

プロトタイプを作成しましたが、QLPreviewControllerDelegate メソッド -(BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id)item が呼び出されることはありません。

リンクを含む .docx ファイルを使用すると、デリゲート メソッドが起動されます。

また、Safari または UIWebView を使用して PDF を開くと、リンク処理は正常に機能します。

いくつかの異なる PDF でテストしましたが、リンク インターセプトは機能しませんでした。

My インターフェイスが次のプロトコルを実装していることを確認しました: QLPreviewControllerDataSource、QLPreviewControllerDelegate

また、shouldOpenUrl メソッドを持つクラスがデリゲートとして QlPreviewController インスタンスに割り当てられていることも確認しました。

.docx リンク インターセプトが正常に機能するため、問題は私のコードにあるとは考えていません。

私が間違っているかもしれないことについて何か考えはありますか?

PDF リンクのインターセプトは Quicklook でもサポートされていますか?

また、iOS メールで PDF を開くと、Quicklook が使用され、そこでも PDF リンクが機能しないことに気付きました。

4

2 に答える 2

2

ここに着陸して同じ答えを探している人たちのために、私自身の質問に答えます。Quicklook はリンク処理をサポートしていません。PDF ドキュメント内のリンクを処理する必要がある場合は、CATiledLayer を使用して PDF をレンダリングする必要があります。

于 2012-05-30T05:50:47.603 に答える
0

ドキュメント内のリンクがクリックされたことを検出するには、QLPreviewControllerDelegate

/*
 * @abstract Invoked by the preview controller before trying to open an URL tapped in the preview.
 * @result Returns NO to prevent the preview controller from calling -[UIApplication openURL:] on url.
 * @discussion If not implemented, defaults is YES.
 */
- (BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id <QLPreviewItem>)item;

戻るYESとそのドキュメントが開き、外部 URL の場合は自動的に Safari が起動します。

UIAlertView を表示して、アプリを終了して Safari を開くかどうかをユーザーに確認することができます。

于 2013-03-19T01:15:18.647 に答える