在 Swift 4.2 中 NSCollectionView 的 SupplementaryElementKind 字符串值中使用啥

Posted

技术标签:

【中文标题】在 Swift 4.2 中 NSCollectionView 的 SupplementaryElementKind 字符串值中使用啥【英文标题】:What to Use in NSCollectionView's SupplementaryElementKind String Value in Swift 4.2在 Swift 4.2 中 NSCollectionView 的 SupplementaryElementKind 字符串值中使用什么 【发布时间】:2018-10-18 05:48:57 【问题描述】:

在 Swift 4.2 之前,我可以像这样创建一个 NSCollectionView 标头:

func collectionView(_ collectionView: NSCollectionView, viewForSupplementaryElementOfKind kind: NSCollectionView.SupplementaryElementKind, at indexPath: IndexPath) -> NSView 
  let view = collectionView.makeSupplementaryView(ofKind: .sectionHeader, withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "Header"), for: indexPath as IndexPath) as! Header

  view.sectionTitle.stringValue = collectionSections[indexPath.section]
  return view

如果我没记错的话,.sectionHeader 来自enum,来自NSCollectionView.SupplementaryElementKind。但是the docs 说NSCollectionView.SupplementaryElementKindString

这给我留下了更新的 Swift 4.2 代码,如下所示:

func collectionView(_ collectionView: NSCollectionView, viewForSupplementaryElementOfKind kind: NSCollectionView.SupplementaryElementKind, at indexPath: IndexPath) -> NSView 
  let view = collectionView.makeSupplementaryView(ofKind: "?????", withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "Header"), for: indexPath as IndexPath) as! Header

  view.sectionTitle.stringValue = collectionSections[indexPath.section]
  return view

我不清楚我应该为 ofKind 参数 (String) 添加什么内容。该字符串对应于什么?我在我的 xib 文件中看不到任何其他可以与之关联的内容。

【问题讨论】:

【参考方案1】:

我想通了。您只需从它所在的 makeSupplementaryView 委托方法传入 kind 参数。

let view = collectionView.makeSupplementaryView(ofKind: kind, withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "Header"), for: indexPath as IndexPath) as! Header

【讨论】:

以上是关于在 Swift 4.2 中 NSCollectionView 的 SupplementaryElementKind 字符串值中使用啥的主要内容,如果未能解决你的问题,请参考以下文章

使用 PromiseKit 6 在 Swift 4.2 中缓存

视频冻结在iphone 6 swift 4.2中

Swift 4.2 新特性(译)

在 Swift 4.2 中,后台获取每秒都在工作

Swift 4.2 升级后将 Swift 类桥接到 React Native

避免 Equatable 和 Hashable 样板,Swift 4.2