Swift 3 Cocoa:使用 QuickLook 在 OS X 中预览文件

eni*_*are 3 macos xcode quicklook swift

Xcode 8.3.2 我在命令列表中找不到 QLPreviewPanel 并且我不知道如何做(必须使用哪个命令)在 ViewController 中显示文件预览。

Leo*_*bus 5

首先,您需要将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
    }
}
Run Code Online (Sandbox Code Playgroud)