Files
felixfoertsch.de/Content/Archive/220123-ff.de v10 felixfoertsch.github.io/_drafts/2019-02-25-Create-a-Custom-CollectionView-for-a-macOS-App-in-Swift.md
T

1.3 KiB

layout, title, categories, tags, last_modified_at, excerpt_separator
layout title categories tags last_modified_at excerpt_separator
post Create a Custom CollectionView for a macOS App in Swift
Tutorials
swift
coding
macOS
<!-- more -->
  1. Register CustomCollectionViewItem in the CustomViewController
  2. Adopt NSCollectionViewDataSource in CustomViewController
  3. Override loadView() in CustomCollectionViewItem
import Cocoa

class CustomViewController: NSViewController {
    @IBOutlet weak var collectionView: NSCollectionView!

    override func viewDidLoad() {
        self.collectionView.register(CustomCollectionViewItem.self, forItemWithIdentifier: NSUserInterfaceItemIdentifier("CustomCollectionViewItem"))
    }
}

extension CustomViewController: NSCollectionViewDataSource {
    func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
        return dataSource.count
    }
    
    func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
        let item = self.collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier("CustomCollectionViewItem"), for: indexPath)
        return item
    }
}

class CustomCollectionViewItem: NSCollectionViewItem {
    override func loadView() {
    }
}