2

複数の列を含む NSOutlineView があります。ノード タイトルに余分なスペースを使用するために、グループ ノードのセルを結合するにはどうすればよいですか? たとえば、子ノードに「名前」、「身長」、「体重」などの列がありますが、グループノードに「ビバリーヒルズ高校のサッカーチーム」と言う必要があります。これは長すぎて 1 つの列に収まらないので、グループノードでその列のフレームを展開する必要があります。

私は答えを見つけようとしましたが、私が見つけることができたのは NSTableView の解決策だけで、それらにはサブクラス化が含まれていました。次に頭に浮かんだのは、カテゴリを使用して NSOutlineView メソッドを再定義することでしたが、オンラインで少し読んだ後、もう一度それをやめることにしました。

どんな助けでも大歓迎です。

4

2 に答える 2

0

選択したノード (通常はルート ノード) に対してのみこれを行う必要がある場合NSTextFieldCellは、メソッドの nil 列に対してセル (たとえば、あなたの場合)を返すようにしてください-[NSOutlineViewDelegate outlineView:dataCellForTableColumn:item:]。詳細については、その説明とドキュメントを参照してください。次に、これらのノードをオーバーライド[NSOutlineViewDelegate – outlineView:isGroupItem:]して、より興味深い外観にするために YES を返すこともできます。

于 2013-04-07T16:33:12.553 に答える
0

http://www.mactech.com/articles/mactech/Vol.18/18.11/1811TableTechniques/index.htmlの指示に従ったところ、うまくいきました。セルが表示されない問題は、空の drawRect 実装が原因でした。私はそれを削除し、NSTextfieldCell が処理できるように残しました。

于 2013-04-03T11:49:43.223 に答える