0

デリゲート関数を使用して NSOutlineView をカスタマイズし、次を使用してグループ項目の行の高さと色を調整しました。

- (void)outlineView:(NSOutlineView *)outlineView didAddRowView:(NSTableRowView *)rowView forRow:(NSInteger)row {
    LOG(@"didAddRowView called");
    if ([self outlineView:outlineView isGroupItem:[outlineView itemAtRow:row]])
        [rowView setBackgroundColor:[NSColor controlColor]];
}

- (CGFloat)outlineView:(NSOutlineView *)outlineView heightOfRowByItem:(id)item {
    if ([self outlineView:outlineView isGroupItem:item])
        return 24.0;
    else
        return 36.0;
}

これはほとんど機能します。結果は以下のとおりです。セクションの最後の行と次のセクション ヘッダーの間に小さなギャップがあります。これが何であるか、およびそれを削除する方法について、誰でも光を当てることができますか. おそらく何らかのフッターである可能性があります。そうであれば、それを調整するための API はありますか? outlineView:heightOfRowsByItem 下の写真は、完全に削除した場合の写真です。

ここに画像の説明を入力

heightOfRowsByItem を使用しない場合の結果

heightOfRowsByItem を使用しない場合の結果

編集:outlineView backgroundColorをヘッダー行に必要な色に設定し、他の行の色を白に設定することで、これを解決しました。以下に示すように、これでギャップが埋められますが、それでも多少の回避策のようです。

ここに画像の説明を入力

4

1 に答える 1

0

これを解決する別の方法は、ヘッダーに使用される NSTableCellView の高さを設定することです。

于 2014-09-02T13:11:30.880 に答える