【发布时间】:2016-10-17 07:01:08
【问题描述】:
PDFAnnotationText 未在 macOS sierra 10.12.1 Beta (16B2548a) 上显示弹出窗口。 PDFAnnotationText 在 10.12 中已弃用,但新的 API 不会绘制注释。
旧 API:
// display the PDF document
[m_pdfView setDocument: [self pdfDocument]];
- (PDFDocument *)pdfDocument {
// create a page
PDFDocument *document = [[PDFDocument alloc] initWithURL:[NSURL fileURLWithPath:@"/Users/test/Downloads/Eticket.pdf"]];
PDFAnnotationText* result = [[PDFAnnotationText alloc] initWithBounds:NSMakeRect(100, 100, 40, 40)];
result.color = [NSColor redColor];
result.contents = @"Hello";
result.iconType = kPDFTextAnnotationIconNote;
// add it to the PDF document
[[document pageAtIndex:0] addAnnotation:result];
return document;
}
10.12 新 API:
- (PDFDocument *)pdfDocument {
// create a page
PDFDocument *document = [[PDFDocument alloc] initWithURL:[NSURL fileURLWithPath:@"/Users/test/Downloads/Eticket.pdf"]];
NSMutableDictionary *popupDictionary = [[NSMutableDictionary alloc] init];
[popupDictionary setObject:@"/Popup" forKey:kPDFAnnotationKey_Subtype];
[popupDictionary setObject:[NSColor redColor] forKey:kPDFAnnotationKey_Color];
[popupDictionary setObject:@"Hello" forKey:kPDFAnnotationKey_Contents];
NSValue *rectValue = [NSValue valueWithRect:NSMakeRect(100, 100, 40, 40)];
[popupDictionary setObject:rectValue forKey:kPDFAnnotationKey_Rect];
PDFAnnotation *textAnnotation = [[PDFAnnotation alloc] initWithDictionary: popupDictionary forPage: [document pageAtIndex:0]];
[[document pageAtIndex:0] addAnnotation:textAnnotation]; // add it to the PDF document
return document;
}
我使用的是 Xcode 版本 8.0 (8A218a)。谁能帮帮我?
【问题讨论】:
标签: objective-c cocoa annotations macos-sierra pdf-annotations