1

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

在此处输入图像描述

但是当再次显示它时,里面的 PDF 发生了变化:

在此处输入图像描述

打开窗口的代码是这样的:

- (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 的光标右会导致:

在此处输入图像描述

这只是 PDF 的第二页。

Edit2如果有人感兴趣,我附上 ObjC/Swift XCode 项目。您只需要在 AppDelegate 中调整 PDF 文件的位置。投递箱

4

1 回答 1

1

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

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

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

此外,您不需要在窗口的视图上设置需求显示。

于 2016-12-14T12:22:27.590 回答