我正在使用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;
解決上述可以理解
我正在使用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;
解決上述可以理解
我認爲這可以是一個直出錯誤或一個尚未未公開的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:
。
現在最新的os10.12操作系統,可以顯示PDF註釋,但現在我仍然有問題,我在PDFView-> mouseDragged之前記錄了座標信息,然後自動調用PDFView-> drawPage函數,這個函數我將繪製NSBezierPath曲線來確定動態註釋邊界。但是現在在mouseDragged的過程中並沒有調用drawPage:toContext函數。我使用的刷新方法仍然沒有調用drawPage:toContext。想知道如何調用這個函數。非常感謝您的幫助。 – linda
對不起。我不使用註釋,我只是直接繪製到視圖上。你有沒有回顧[skim](https://sourceforge.net/projects/skim-app/)如何處理註釋?我知道他們在10.12有一些問題。 –
我也有這個問題。我發現當我放大或縮小時,註釋將顯示。但我不知道如何使它動態顯示。看來SetNeedsDisplay不起作用。 – SuperBerry