TextFieldCellをセルとして使用するNSOutlineViewのカスタムサブクラスがあります。子を持ついくつかのアイテム(子のグループを表す)。
子供がいるアイテムにはカスタムカラーを、子供がいないアイテムには別のカスタムカラーを使用したいと思います。IBで変更しようとしましたが、色は子アイテムに対してのみ変更され、コードではカスタム色を設定することもできますが、子アイテムに対してのみ変更されます。誰でも私を助けることができますか?
TextFieldCellをセルとして使用するNSOutlineViewのカスタムサブクラスがあります。子を持ついくつかのアイテム(子のグループを表す)。
子供がいるアイテムにはカスタムカラーを、子供がいないアイテムには別のカスタムカラーを使用したいと思います。IBで変更しようとしましたが、色は子アイテムに対してのみ変更され、コードではカスタム色を設定することもできますが、子アイテムに対してのみ変更されます。誰でも私を助けることができますか?
徹底的な調査の結果、それを行う唯一の方法は、サブクラスのdrawRow:
メソッドをオーバーライドすることであるようです。NSOutlineView
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];
}
フォーマットについて申し訳ありませんが、私はまだこれでかなり新しいです。私はこのコードを似たようなものに使用したので、これはうまくいくはずです。それがあなたが探しているものだといいのですが。