从collectionViewItem引用textLabel

时间:2018-03-11 01:07:36

标签: swift macos nscollectionview textlabel

我无法访问xib文件中textLabel的stringValue,我将其用于我的通用NSCollectionViewItem。

从xib-file注册collectionView:

override func viewDidLoad() {
    super.viewDidLoad()

    let item = NSNib(nibNamed: NSNib.Name("collectionViewItem"), bundle: nil)

    collectionView.register(item, forItemWithIdentifier: NSUserInterfaceItemIdentifier("collectionViewItem"))

    collectionView.delegate = self
    collectionView.dataSource = self
}

制作NSCollectionViewItem:

func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {

    let item = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier("collectionViewItem"), for: indexPath)

    // Here I want to access the stringValue of the textLabel within my collectionViewItem. 

    return item
}

关于如何创建对此textLabel的引用并对其进行操作的任何想法?

1 个答案:

答案 0 :(得分:0)

创建一个覆盖NSCollectionViewItem的自定义类MyCollectionViewItem。添加textLabel成员并将其链接到您的nib文件中。然后在使用makeItem时强制转换:

let item = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier("collectionViewItem"), for: indexPath) as! MyCollectionViewItem