1

曲を再生するアプリがあります。曲はNSCollectionViewにロードされます。2つのコントローラーがあります。

  • WindowController
  • SongViewController(CollectionViewItemのビューのコントローラー)

ウィンドウと個々の曲のビューの両方に再生ボタンがあります。そのため、ウィンドウから再生を押すと、曲ビューの再生ボタンを更新して一時停止/再生ステータスを表示する必要があります。その逆も同様です。

SongViewで再生を押すと、問題ありません。_delegate = [[NSApp mainWindow] windowController]

しかし、ここに私の問題があります:その逆はどうですか?SongViewControllerをWindowControllerからのデリゲートとして設定するにはどうすればよいですか。約20個のCollectionViewItemがあり、したがって20個のSongViewControllerがあります。正しいものを見つけて設定するにはどうすればよいですか。

また、私はObjective-Cにかなり慣れていないので、奇妙な方法でこれに近づいている場合は教えてください。

:)

4

1 に答える 1

0

(NSCollectionViewItem *)itemAtIndex:(NSUInteger)indexNSCollectionViewには、特定のインデックスでNSCollectionViewItemにアクセスするためのメソッドがあります。NSCollectionViewItemはNSViewControllerを継承するため、NSCollectionViewItemが制御するビューにアクセスしてデリゲートを設定できます。

それは技術的な答えですが、私は通知センターとバインディングを使用して問題に取り組みました。これははるかに簡単で効率的です。

于 2012-09-18T06:00:14.493 に答える