override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
let item = NSNib(nibNamed: NSNib.Name("CollectionViewItem"), bundle: nil)
self.collectionView.register(item, forItemWithIdentifier: .collectionViewItem)
extension ViewController: NSCollectionViewDataSource {
func numberOfSections(in collectionView: NSCollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
return Templates.count
}
func collectionView(_ collectionView: NSCollectionView,
itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
let item = collectionView.makeItem(
withIdentifier: .collectionViewItem, for: indexPath)
guard let collectionViewItem = item as? CollectionViewItem else {return item}
collectionViewItem.imageView = image
return item
}
}
extension NSUserInterfaceItemIdentifier {
static let collectionViewItem = NSUserInterfaceItemIdentifier("CollectionViewItem")
}
Я настроил все как в приведенном ниже коде, но по какой-то причине я не могу передать
guard let collectionViewItem = item as? CollectionViewItem else {return item}
Охранник всегда возвращает элемент, а не collectionViewItem.Может быть, кто-то сталкивался с такой проблемой?Что я делаю неправильно?Практически все следовали инструкциям https://www.raywenderlich.com/1246-collection-views-in-os-x-tutorial.
Использование последней версии Xcode 10.0 + последний swift