Mac应用开发NSCollectionView 纯代码用法遇到的坑

在开发VideoLine应用时,作者尝试使用NSCollectionView纯代码实现加载视频关键帧的缩略图展示。然而遇到问题,NSCollectionView的`collectionView(_:itemForRepresentedObjectAt:)`代理方法未被正确调用,而`collectionView(_:numberOfItemsInSection:)`正常。通过研究发现,缺少了一个ScrollView导致问题。添加ScrollView后,问题得到解决。文章强调Mac开发中理解控件组成的重要性,尤其是与iOS API的差异。
摘要由CSDN通过智能技术生成
  • 想开发一个VideoLine 加载视频关键帧的缩略图 于是想纯代码自定义一个VideoLineView (NSView), 里面加一个NSCollectionView ,但是开发的过程中就碰到无法回调代理方法func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem,但是func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int 也可以回调成功,一直折腾了好久才发现问题的真正原因。
  • 一般开发的时候都是在XIB或者Storyboard上托一个CollctionView 空间,Mac应用在XIB上拉入的控件CollctionView,外面嵌套了好几层东西,比iOS上层级关系复杂很多,如下图所示,拉入的CollectionView 外面包裹了好几层,最外层就是个ScrollView. 这里写图片描述
  • 自定义一个View 初始化后,添加到ViewController 的View上后
class VideoLineView: NSView {
    var imagesCollectionView: NSCollectionView!
   // var scrollView: NSScrollView! 后面添加的

 override init(frame frameRect: NSRect) {
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值