2016-07-22 94 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