Cocoa でタイムライン コントロールを作成しようとしています。これが私が達成しようとしていることです。基本的に標準的なタイムラインのデザインです。
とはいえ、どのようなアプローチをとればよいかわかりません。問題は、上部のルーラー、左側のトラック リスト、および下部のオーディオ波形表示にあります。これらの 3 つの部分は、常に表示され、エッジに「くっつく」必要があります。ルーラーとオーディオ波形は水平方向にのみスクロールする必要がありますが、左側のトラック リストは垂直方向にのみスクロールする必要があります。
最上位の定規については、単なる定規なので NSRulerView が適しているようです。
左のビューと下のビューの場合、どちらのルートを取るべきかわかりません。トラック リストに幅の広い垂直方向の NSRulerView を使用して遊んでみました。これは機能しますが、追加の問題が発生します。例: トップ ルーラーはトラック リストの上に表示されます。
これまでに 4 つのオプションを作成しました。
NSRulerView を忘れて、ドキュメント ビューですべてのカスタムを描画します。これは実行可能に思えますが、NSRulerView 関数に組み込まれている回避策です。また、スクロールバーを短くして、サイドビューとトップビューに重ならないようにする方法を見つける必要があります。
上部と左側に NSRulerViews を使用します。下側は、おそらくドキュメント ビューで手動で描画されます。
左側のビューをスクロール ビューの外側に配置し、メインのスクロール ビューにリンクして手動で上下にスクロールします。上部に NSRulerView を使用し、ドキュメント ビューで音声波形を手動で描画します。
別の NSScrollView に埋め込まれた NSScrollView。外側のスクロール ビューは水平スクロールを処理し、内側のスクロール ビューは垂直スクロールを処理します。可能だと思いますが、ハッキーなようです。
つまり、私の質問は次のようになります。誰かがこの問題に光を当てて、私を正しい方向に向けることができますか?