Я пытаюсь запрограммировать NSCollectionView в Swift, MacOS.Работает хорошо, за одним исключением.Заголовки разделов не отображаются.Где они должны появиться, это просто пустое место.Последняя функция collectionView
в приведенном ниже коде, которая должна вызываться каждый раз при отрисовке заголовка, никогда не вызывается.Вместо этого он выдает это предупреждение:
Метод экземпляра 'collectionView (: viewForSupplementaryElementOfKind: at :)' почти соответствует необязательному требованию 'collectionView (: viewForSupplementaryElementOfKind: at :)' протокола'NSCollectionViewDataSource'
Кто-нибудь знает, что я сделал не так?Как я могу заставить программу вызывать функцию view-collection-collectionView?
Best!
extension FacetWindow: NSCollectionViewDataSource{
func numberOfSections(in collectionView: NSCollectionView) -> Int {
return facets.count // how many sections?
}
func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
return facets.facets[section].facetContent.count //how many items in section?
}
func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
let item = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "FacetsWindowCollectionViewItem"), for: indexPath)
guard let collectionViewItem = item as? FacetsWindowCollectionViewItem else {return item}
collectionViewItem.textField?.stringValue = facets[indexPath[0], indexPath[1]]
print("facet" , facets[indexPath[0], indexPath[1]])
return item
}
func collectionView(_ collectionView: NSCollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> NSView {
//this function never gets called!!!
let view = collectionView.makeSupplementaryView(ofKind: NSCollectionView.SupplementaryElementKind.sectionHeader, withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "FacetsWindowCollectionViewHeader"), for: indexPath) as! FacetsWindowCollectionViewHeader
view.FacetsWindowCollectionViewHeaderLabel.stringValue = facets[indexPath[0]]
return view
}
}