0

Mac に PDF ビューアを実装していて、ユーザーが注釈を追加できるようにしたいと考えています。

ページに PDFAnnotationText を追加しましたが、問題なく表示されますが、ユーザーがクリックすると、ドキュメント全体が縮小され、注釈リストが左側に表示されます。

これをカスタマイズして、プレビューと同様に、注釈をポップアップとして表示したいと考えています。PDFAnnotationText クラス リファレンスには、これを実行できると書かれています。

各 PDFAnnotationText オブジェクトには、関連付けられた PDFAnnotationPopup オブジェクトがあります。閉じた状態では、注釈はアイコンとして表示されます。開いた状態では、メモのテキストを含むポップアップ ウィンドウとして表示されます。アプリケーションは、PDFViewAnnotationHitNotification に応答して、テキストを含むウィンドウを配置する作業を行う必要があることに注意してください。

しかし、PDFViewAnnotationHitNotification のオブザーバーを追加すると、注釈をクリックしても通知が配信されません。

4

1 に答える 1

0

この件について Apple に問い合わせたところ、返ってきた答えは、これはバグだというものでした。回避策は、マウス クリックを自分で処理し、注釈をたどってヒットを探すことです。

このようなもの (PDFView サブクラスの mouseDown ハンドラーで実行されるコード):

NSPoint windowPoint = [self.window convertScreenToBase:[NSEvent mouseLocation]];
NSPoint viewPoint = [self convertPoint:windowPoint fromView:nil];
PDFPage *page = [self pageForPoint:viewPoint nearest:NO];

if (page != nil) {
    NSPoint pointOnPage = [self convertPoint:viewPoint toPage:page];

    for (PDFAnnotation *annotation in page.annotations) {
        NSRect      annotationBounds;

        // Hit test annotation.
        annotationBounds = [annotation bounds];
        if (NSPointInRect(pointOnPage, annotationBounds))
        {
            NSLog(@"Annotation hit: %@", annotation);
        }
    }
}
于 2012-10-23T21:06:51.680 に答える