2012-09-17 2 views
0

Mac에서 PDF 뷰어를 구현 중이며 사용자가 주석을 추가하도록하고 싶습니다.PDFViewAnnotationHitNotification이 전달되지 않음

페이지에 PDFAnnotationText를 추가했는데 잘 보입니다.하지만 사용자가 클릭하면 전체 문서가 축소되고 왼쪽 아래에 주석 목록이 나타납니다.

미리보기와 비슷한 주석을 팝업으로 표시하려면이 기능을 사용자 정의하고 싶습니다. PDFAnnotationText 클래스 참조 내가이 작업을 수행 할 수 있다고 :

각 PDFAnnotationText 객체에는 PDFAnnotationPopup 개체가 있습니다. 닫힌 상태에서 주석은 아이콘으로 나타납니다. 열려있는 상태에서 메모의 텍스트가 포함 된 팝업 창으로 표시됩니다. 응용 프로그램은 PDFViewAnnotationHitNotification에 대한 응답으로 텍스트가 포함 된 창을 작성하는 작업을 수행해야합니다.

그러나 PDFViewAnnotationHitNotification에 대한 관찰자를 추가 할 때 주석을 클릭하면 알림이 전달되지 않습니다.

답변

0

나는 이것에 대해 애플에 연락했고, 내가받은 대답은 그것이 버그라는 것이다. 이 문제를 일시적으로 해결하려면 마우스 클릭을 직접 처리하고 주석을보고 히트를 찾습니다. (A 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); 
     } 
    } 
} 
+0

그것은 10.12에서 작동합니까? PDFAnnotationText 주석은 클릭시 확장되지 않습니다. –

관련 문제