1

TextFieldCellをセルとして使用するNSOutlineViewのカスタムサブクラスがあります。子を持ついくつかのアイテム(子のグループを表す)。

子供がいるアイテムにはカスタムカラーを、子供がいないアイテムには別のカスタムカラーを使用したいと思います。IBで変更しようとしましたが、色は子アイテムに対してのみ変更され、コードではカスタム色を設定することもできますが、子アイテムに対してのみ変更されます。誰でも私を助けることができますか?

4

2 に答える 2

0

徹底的な調査の結果、それを行う唯一の方法は、サブクラスのdrawRow:メソッドをオーバーライドすることであるようです。NSOutlineView

于 2013-03-29T22:00:42.440 に答える
0

NSOutlineViewDelegateメソッドを実装することもできます-(void)outlineView:(NSOutlineView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn item:(id)item;

その中には、次のような部分があります。

if ([self outlineView:self isGroupItem: item]){
NSColor *color;
if ([item.children count] == 0) {
color = [NSColor redColor];
}
else {
color = [NSColor blueColor];
}
[aCell setDrawsBackground:YES];
[aCell setBackgroundColor: color];
}

フォーマットについて申し訳ありませんが、私はまだこれでかなり新しいです。私はこのコードを似たようなものに使用したので、これはうまくいくはずです。それがあなたが探しているものだといいのですが。

于 2013-04-01T16:04:05.903 に答える