PDF未正确显示

时间:2016-12-13 10:13:59

标签: objective-c swift pdfview

在我的应用程序中,我使用一个带有单个PDF视图的窗口来显示一些信息。首先显示窗口时显示正常:

enter image description here

但是当再次显示它时,内部的PDF被移动了:

enter image description here

打开窗口的代码是:

- (IBAction)viewClicked:(id)sender {
  NSData* data = [NSData dataWithContentsOfFile:@"my.pdf"];
  pdf = [[PDFDocument alloc] initWithData:data];
  [_pdfWindow makeKeyAndOrderFront:self];
  _pdfView.document = pdf;
}

这是在应用启动后立即调用的。窗口关闭,红色关闭按钮。在此之后,重复上述viewClicked并显示移位的图片。

Swift也是如此:

@IBAction func viewClicked(_ sender: Any) {
  let data = NSData(contentsOfFile:"my.pdf")
  pdf = PDFDocument(data:data as! Data)
  pdfWindow.makeKeyAndOrderFront(self)
  pdfView.document = pdf
}

编辑进一步观察:光标向右,直接传播到PDFView,当从错误的显示中发出结果时:

enter image description here

这只是PDF的第2页。

Edit2 如果有人有兴趣,我会附上ObjC / Swift XCode项目。您只需要在AppDelegate中调整PDF文件位置即可。 Dropbox

1 个答案:

答案 0 :(得分:1)

是的,PDFView很烦人。在将PDFView文档分配给新文档之前将其设置为nil:

_pdfView.document = nil;
_pdfView.document = pdf;

这将重置它并解决您的问题。

此外,您不需要在窗口视图中设置needsDisplay。