複数ページのPDFファイルをスキャンするアプリケーションを作成しています。リンクされている aPDFView
と aがあります。PDFThumbnailView
初めてスキャンが完了すると、新しい を作成してPDFDocument
に設定しPDFView
ます。次に、別のスキャンが完了するたびに、 に を追加PDFPage
し[pdfView document]
ます。
問題は、ページが追加されるたびに、追加のページを含む新しいドキュメントを表示するPDFView
かPDFThumbnailView
更新しないことです。それは、ズームインまたはズームアウトするまでです。その後、両方が更新されて、ドキュメントが新しいページで表示されます。
私が現在持っている一時的な解決策 (ズームインしてから自動スケーリングする) は、確かに最善の解決策ではありません。たとえば、ドキュメントを既に拡大しているときに新しいページをスキャンすると、ビューは自動スケーリングされます。前に試してみ[pdfView setNeedsDisplay:YES]
ましたが、うまくいかないようです。
これは、スキャンが次のように到着するメソッドNSData
です。
- (void)scannerDevice:(ICScannerDevice *)scanner didScanToURL:(NSURL *)url data:(NSData *)data {
//Hide the progress bar
[progressIndicator stopAnimation:nil];
//Create a pdf page from the data
NSImage *image = [[NSImage alloc] initWithData:data];
PDFPage *page = [[PDFPage alloc] initWithImage:image];
//If the pdf view has a document
if ([pdfView document]) {
//Set the page number and add it to the document
[page setValue:[NSString stringWithFormat:@"%d", [[pdfView document] pageCount] + 1] forKey:@"label"];
[[pdfView document] insertPage:page atIndex:[[pdfView document] pageCount]];
} else {
//Create a new document and add the page
[page setValue:@"1" forKey:@"label"];
PDFDocument *document = [[PDFDocument alloc] init];
[document insertPage:page atIndex:0];
[pdfView setDocument:document];
}
//Force a redraw for the pdf view so the pages are shown properly
[pdfView zoomIn:self];
[pdfView setAutoScales:YES];
}
のズーム状態をいじらずに を追加しPDFPage
て更新できる方法を知っている人はいますか?PDFView
PDFView