2016-07-22 96 views
2

我正在使用Mac OS 10.12,并且有一个应用程序使用PDFKit界面显示PDF文件。 但我遇到了以下问题使用PDFKit界面显示PDF文件

组PDF文档PDFView,在原有的操作系​​统,e.g。 OS10.11,会调用PDFView-> drawPage()函数,但是在OS10.12中,函数不会被调用;

PDFView can't draw pdf annotation in OS10.12;

解决上述可以理解

回答

2

我认为这可以是一个直出错误或一个尚未未公开的API变化。我将它记录为一个错误(27666426),现在可以看到它被标记为公开副本(27668895)。

请注意,10.12 Beta 6中的-drawWithBox:toContext:被调用来代替现在不推荐使用的-drawWithBox:。请注意,对于所有图形,还必须使用传入的上下文。

UPDATE:

然而事情似乎并没有随10.12现在,它被释放简单。我发现我的PDF视图打印在10.11和上的-drawWithBox:被打开。

单步执行汇编程序我可以看到10.12在打印时现在调用-drawWithBox:inContext:而不是-drawWithBox:toContext:-drawWithBox:(如10.11所示)。看起来inContext:选择器已经是around a while

对于屏幕和打印渲染来说,似乎在10.9 - 10.12上工作的唯一解决方案是使用未公开的-drawWithBox:inContext:

+0

现在最新的os10.12操作系统,可以显示PDF注释,但现在我仍然有问题,我在PDFView-> mouseDragged之前记录了坐标信息,然后自动调用PDFView-> drawPage函数,这个函数我将绘制NSBezierPath曲线来确定动态注释边界。但是现在在mouseDragged的过程中并没有调用drawPage:toContext函数。我使用的刷新方法仍然没有调用drawPage:toContext。想知道如何调用这个函数。非常感谢您的帮助。 – linda

+0

对不起。我不使用注释,我只是直接绘制到视图上。你有没有回顾[skim](https://sourceforge.net/projects/skim-app/)如何处理注释?我知道他们在10.12有一些问题。 –

+0

我也有这个问题。我发现当我放大或缩小时,注释将显示。但我不知道如何使它动态显示。看来SetNeedsDisplay不起作用。 – SuperBerry