如何将集合视图项设置为委托?

时间:2012-08-09 07:22:08

标签: objective-c macos cocoa

我有一首歌在玩app。歌曲被加载到NSCollectionView中。有两个控制器:

  • WindowController
  • SongViewController(CollectionViewItem视图的控制器)

窗口和每个单独的歌曲视图都有一个播放按钮。因此,当我从窗口按下播放时,歌曲视图的播放按钮需要更新以显示暂停/播放状态,反之亦然。

当我在SongView中按下播放时没问题,我可以设置_delegate = [[NSApp mainWindow] windowController]

但这是我的问题:另一种方式呢?如何将SongViewController设置为WindowController的委托。大约有20个CollectionViewItems,因此有20个SongViewControllers。我如何找到并设置正确的。

另外,我对Objective-C很新,如果我以一种奇怪的方式接近它,请告诉你。

:)

1 个答案:

答案 0 :(得分:0)

NSCollectionView有一个方法(NSCollectionViewItem *)itemAtIndex:(NSUInteger)index来访问特定索引处的NSCollectionViewItem。 NSCollectionViewItem继承自NSViewController,因此您可以访问它控制的视图来设置委托。

虽然这是技术上的答案,但我使用Notification Center和绑定解决了这个问题,我发现它更简单,更有效。

相关问题