swift - 从集合中引用文本标签查看项目

标签 swift macos nscollectionview textlabel

我在访问 xib 文件中用于通用 NSCollectionViewItem 的 textLabel 的 stringValue 时遇到问题。

从 xib 文件注册 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 的引用并对其进行操作有什么想法吗?

最佳答案

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

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

关于swift - 从集合中引用文本标签查看项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49215637/

相关文章:

objective-c - 如何在 NSCollectionView 的行和列之间留出空间?

ios - 你如何从 Swift 或 Objective C 中的 UIImage 获取 URL?

ruby - chruby 和 chgems 能代替 rvm 的 gemset 吗?

macos - Cocoa NSCollectionView 不调用 dataSource 方法

macos - 下载后代码签名的 Mac 应用程序损坏

macos - 终端中的未知名称作为用户名

objective-c - NSCollectionView 什么都不画

swift - swift 3.0 编译的模块无法在 Swift 3.0.1 中导入

ios - 除了 `UserDefaults` 之外,还有其他方法可以在 `Today Widget Extension` 和 iOS 中的主要 `Container Application` 之间共享数据吗

ios - 在 Swift/SwiftUI 中包含多种 View 类型的数组