创建预览,文件可以像 Finder 的 Quicklook 一样在面板中呈现,或者在视图中呈现。
如需完整文档,请查看 在线文档。
一个协议,定义了一组您需要实现的属性,用于创建可以被 QuicklookPanel
和 QuicklookView
显示的预览。 URL
, NSURL
和 AVURLAsset
遵循 QuicklookPreviewable
协议。
struct GalleryItem: QuicklookPreviewable {
let title: String
let imageURL: URL
var previewItemURL: URL? {
return imageURL
}
var previewItemTitle: String? {
return title
}
}
QuicklookPanel.shared.preset(aGalleryItem)
在类似于 Finder 的 Quicklook 的面板中呈现文件预览。
// URL is compatible `QuicklookPreviewable`
QuicklookPanel.shared.present(fileURLs)
您可以嵌入到视图层次结构中的文件预览。
let quicklookView = QuicklookView(content: fileURL)
NSCollectionView/NSTableView 的 isQuicklookPreviewable
属性可以启用项目/单元格的 quicklook 功能。
有几种方法可以提供 quicklook 预览
var quicklookPreview: QuicklookPreviewable?
属性collectionViewItem.quicklookPreview = URL(fileURLWithPath: "someFile.png")
collectionView(_ collectionView: NSCollectionView, quicklookPreviewForItemAt indexPath: IndexPath)
& NSTableView 的数据源方法 tableView(_ tableView: NSTableView, quicklookPreviewForRow row: Int)
func collectionView(_ collectionView: NSCollectionView, quicklookPreviewForItemAt indexPath: IndexPath) -> QuicklookPreviewable? {
let galleryItem = galleryItems[indexPath.item]
return galleryItem.fileURL
}
QuicklookPreviewable
协议的 ItemIdentifierType 的 NSCollectionViewDiffableDataSource & NSTableViewDiffableDataSourcestruct 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()