Create previews of files presented either in a panel similar to Finder's Quicklook or in a view.
For a full documentation take a look at the Online Documentation.
A protocol that defines a set of properties you implement to make a preview that can be displayed by QuicklookPanel and QuicklookView. URL, NSURL and AVURLAsset conform to QuicklookPreviewable.
struct GalleryItem: QuicklookPreviewable {
let title: String
let imageURL: URL
var previewItemURL: URL? {
return imageURL
}
var previewItemTitle: String? {
return title
}
}
QuicklookPanel.shared.preset(aGalleryItem)Presents previews of files in a panel simliar to Finder`s Quicklook.
QuicklookPanel.shared.present(fileURLs)A preview of a file that you can embed into your view hierarchy.
let quicklookView = QuicklookView(content: URL(fileURLWithPath: imageFileURL)NSCollectionView/NSTableView isQuicklookPreviewable enables quicklook of items/cells.
There are several ways to provide quicklook previews:
- NSCollectionViewItems's & NSTableCellView's
var quicklookPreview: QuicklookPreviewable?
collectionViewItem.quicklookPreview = URL(fileURLWithPath: "someFile.png")- NSCollectionView's datasource
collectionView(_ collectionView: NSCollectionView, quicklookPreviewForItemAt indexPath: IndexPath)& NSTableView's datasourcetableView(_ tableView: NSTableView, quicklookPreviewForRow row: Int)
func collectionView(_ collectionView: NSCollectionView, quicklookPreviewForItemAt indexPath: IndexPath) -> QuicklookPreviewable? {
let galleryItem = galleryItems[indexPath.item]
return galleryItem.fileURL
}- A NSCollectionViewDiffableDataSource & NSTableViewDiffableDataSource with an ItemIdentifierType conforming to
QuicklookPreviewable
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()