2017-09-23 6 views
0

私は割り当てのためにMac用の(IOSではない)PDFビューアを作ろうとしていますが、PDFを実際に表示する方法を見つけることさえできません。 PDFViewとQuartzを使用する必要があります。ココアスウィフト(バージョン3.1)でpdfを表示するには

view.setDocument(pdf) 

しかし、迅速にPDFViewは一切のメンバーsetDocumentを持っていないと言う:私はこのトピックの使用上のようなものを見てきました ほとんどのチュートリアル私は、ドキュメントhereを通して見て、それがうまくいくようにしてもリモートで見えること唯一の事は私が試したsetCurrentSelectionた:

import Cocoa 
import Quartz 

@NSApplicationMain 
class AppDelegate: NSObject, NSApplicationDelegate { 
    @IBOutlet weak var window: NSWindow! 
    @IBOutlet weak var PDFV: PDFView! 


    func applicationDidFinishLaunching(_ aNotification: Notification) { 

     let fileURL:URL = (Bundle.main.url(forResource: "example", withExtension: "pdf")! as NSURL) as URL 
     let pdfDocument:PDFDocument = PDFDocument.self.init(url: fileURL as URL)! 
     let thing:PDFSelection = PDFSelection.self.init(document: pdfDocument) 
     PDFV.setCurrentSelection(thing, animate: true) 
     // Insert code here to initialize your application 
    } 

    func applicationWillTerminate(_ aNotification: Notification) { 
     // Insert code here to tear down your application 
    } 
} 

をしかし、これは、私はそれを実行したときにクラッシュするウィンドウを引き起こし、Xcodeのは言う: スレッド1: EXC_BAD_INSTRUCTION(コード= EXC_I386_INVOP、サブコード0x0)。誰かが私が実際に使っているものを知っていますか?

+0

大変申し訳ございません。エラーがsetCurrentSelectionの行に表示されるのを忘れた –

+0

私はあなたがpdfを表示するために 'webView'を使う方が良いと思います –

+0

これは割り当てであり、私たちはPDFViewを使用する必要があります。 –

答えて

0

は実際に何setDocument方法はありませんが、あなたが使用することができますdocumentプロパティがあります:

guard let pdfURL = Bundle.main.url(forResource: "test", withExtension: "pdf") 
    else { fatalError("PDF not found") } 

guard let pdfDocument = PDFDocument(url: pdfURL) 
    else { fatalError("PDF document not created") } 

pdfView.document = pdfDocument 

また、NSURLにURLをキャストする必要はありませんし、その後バックURLには。

+0

ありがとうございます!私はViewController.swiftにコードを移動し、ボタンに関連付けられ、それは完全に動作します! –

+0

@JessyRuiterよろしくお願いします。はい、ビューコントローラに移動するのが適切です。それは本当にAppDelegateにその場所を持っていません。 – nyg