FZQuicklook

创建预览,文件可以像 Finder 的 Quicklook 一样在面板中呈现,或者在视图中呈现。

如需完整文档,请查看 在线文档

QuicklookPreviewable

一个协议,定义了一组您需要实现的属性,用于创建可以被 QuicklookPanelQuicklookView 显示的预览。 URL, NSURLAVURLAsset 遵循 QuicklookPreviewable 协议。

struct GalleryItem: QuicklookPreviewable {
   let title: String
   let imageURL: URL

   var previewItemURL: URL? {
       return imageURL
   }

   var previewItemTitle: String? {
       return title
   }
}

QuicklookPanel.shared.preset(aGalleryItem)

QuicklookPanel

在类似于 Finder 的 Quicklook 的面板中呈现文件预览。

// URL is compatible `QuicklookPreviewable`
QuicklookPanel.shared.present(fileURLs)

QuicklookView

您可以嵌入到视图层次结构中的文件预览。

let quicklookView = QuicklookView(content: fileURL)

NSTableView & NSCollectionView 的 Quicklook

NSCollectionView/NSTableView 的 isQuicklookPreviewable 属性可以启用项目/单元格的 quicklook 功能。

有几种方法可以提供 quicklook 预览

collectionViewItem.quicklookPreview = URL(fileURLWithPath: "someFile.png")
func collectionView(_ collectionView: NSCollectionView, quicklookPreviewForItemAt indexPath: IndexPath) -> QuicklookPreviewable? {
    let galleryItem = galleryItems[indexPath.item]
    return galleryItem.fileURL
}
struct GalleryItem: QuicklookPreviewable {
    let title: String
    let imageURL: URL
    
    // The file url for quicklook preview.
    let previewItemURL: URL? {
        return imageURL
    }
    
    let previewItemTitle: String? {
        return title
    }
}
  
collectionView.dataSource = NSCollectionViewDiffableDataSource<Section, GalleryItem>(collectionView: collectionView) { 
collectionView, indexPath, galleryItem in
// configurate data source
}

// …
collectionView.quicklookSelectedItems()