我的Mac OSX NSViewController意外动作。我在iOS开发时已经完成了UICollectionViews,但是对此感到难过。
我创建了一个CollectionView Item类来处理具有NSImage和NSLabel出口的类:
import Cocoa
class CollectionViewItem: NSCollectionViewItem {
@IBOutlet weak var messageThumb: NSImageView!
@IBOutlet weak var dateLabel: NSTextField!
override func viewDidLoad() {
super.viewDidLoad()
view.wantsLayer = true
view.layer?.backgroundColor = NSColor.lightGray.cgColor
view.layer?.borderColor = NSColor.white.cgColor
view.layer?.borderWidth = 0.0
}
}
下面列出了代理并被触发,项目数量是正确的 - 所以我知道代表和来源是正确的。它正确地拉出项目视图(我相信 - 虽然,它说“object (null)
”)在控制台中进行“po项目”运行
<Konch.CollectionViewItem: 0x6000001232a0>{represented object: (null),
view: <NSView: 0x600000123200> (frame {{0, 0.5}, {65, 87}}), selected:
NO}
但相关的NSImage和NSLabel总是以nil为单位,我无法为其赋值......
extension RecordViewController: NSCollectionViewDataSource {
func numberOfSections(in collectionView: NSCollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
return self.messages.count
}
func collectionView(_ itemForRepresentedObjectAtcollectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
let item = collectionView.makeItem(withIdentifier: "CollectionViewItem", for: indexPath) as! CollectionViewItem
let message = self.messages[indexPath.item]
guard let collectionViewItem = item as? CollectionViewItem else {return item}
collectionViewItem.dateLabel.stringValue = "SADFDF"
return item
}
}
我误解了什么吗?
和CollectionView VC上的IB出口
更新:
回答@El番茄,我在Xib中命名了相关的类