2017-05-09 54 views

回答

0

首先,您需要將import Quartz聲明添加到NSViewCOntroller。第二步是在其聲明中添加QLPreviewPanelDataSource, QLPreviewPanelDelegate。接下來,您只需要獲取共享QLPreviewPanel的參考資料,使視圖控制器爲其dataSourcedelegate並使其窗口鍵和訂單前。

您還需要將numberOfPreviewItems和previewItemAt方法添加到您的控制器。你可以這樣做:

import Quartz 

class ViewController: NSViewController, QLPreviewPanelDataSource, QLPreviewPanelDelegate { 

    @IBAction func button(_ sender: NSButton) { 
     if let sharedPanel = QLPreviewPanel.shared() { 
      sharedPanel.delegate = self 
      sharedPanel.dataSource = self 
      sharedPanel.makeKeyAndOrderFront(self) 
     } 
    } 

    func numberOfPreviewItems(in panel: QLPreviewPanel!) -> Int { 
     return 1 
    } 

    func previewPanel(_ panel: QLPreviewPanel!, previewItemAt index: Int) -> QLPreviewItem! { 
     let url = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("yourImageAtTheDocs.png") 
     return url as QLPreviewItem 
    } 
} 
+0

謝謝你的幫助。我插入: 進口可可 進口QuickLook的 進口石英 比 類的ViewController:NSViewController,NSCollectionViewDelegate,NSCollectionViewDataSource,QLPreviewPanelDataSource,QLPreviewPanelDelegate {.... 和其他指令。我有一個按鈕來調用預覽。此按鈕以show模式打開一個新的視圖控制器,稱爲SecondViewController並存在於主故事板中。我需要在SecondViewController.swift中插入代碼嗎? – eniware