objective-c - PDF 未正确显示

标签 objective-c swift pdfview

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

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 的第二页。

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

最佳答案

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

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

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

此外,您不需要在窗口 View 上设置 needsDisplay。

关于objective-c - PDF 未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41118516/

相关文章:

objective-c - 从 if 语句中断到 else 部分

objective-c - Cocoa PDFView 不调整大小

ios - 如何在 PDFView 中 swift 适应来自 UIImage 的 PDF?

iphone - 无法找到带有异常断点的 exc_bad_access 行并设置 NSZombies 类

ios - 如何提供纵向和横向两种不同的 View ?

ios - 如何在 Swift 4 中更改文本字段中的文本时每 2 个字符后添加分隔符

ios - Storyboard 状态栏后面的内容

ios - 如何在ios13中禁用pdfkits pdfview中的查找、共享、转发菜单项

objective-c - 从父类(super class)到达子类的成员

arrays - 如何在 swift 中从 xml 文件获取数组