1

我有一个歌曲播放应用程序。歌曲被加载到 NSCollectionView 中。有两个控制器:

  • 窗口控制器
  • SongViewController(CollectionViewItem 视图的控制器)

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

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

但这是我的问题:反过来呢?如何将 SongViewController 设置为 WindowController 的委托。大约有 20 个 CollectionViewItem,因此有 20 个 SongViewController。我如何找到并设置正确的。

另外,我对Objective-C还是很陌生,如果我以一种奇怪的方式处理这个问题,请告诉我。

:)

4

1 回答 1

0

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

虽然这是技术答案,但我已经使用通知中心和绑定解决了这个问题,我发现它更简单、更有效。

于 2012-09-18T06:00:14.493 回答