0

私の Outline ビューでは、CustomCell を使用しています。これは、Cocoa ImageTextCell RefrenceCode からコードをいくつか変更して取得したものにすぎません。

セルのハイライトの色を変更することはできますか?

これまでのところ、次のことを行っています - (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {

if([self isHighlighted]){
    NSColor *evenColor = [NSColor colorWithCalibratedRed:.1 green:0.1 blue: 0.1   
         alpha:1.0];
    [evenColor set];
    NSRectFill(cellFrame);
    bSelected = YES;
}

}

これは機能していますが、何が起こっているのか、ハイライトセルの色は最初にシステムのデフォルトの色から始まり、次にevenColorによってオーバーライドされます。問題はcellFrame.origin.xで、0から始まっていないと感じています。

このコードを適用した後、出力は次のようになりました

----- My Custom Cell ----------------
======================================
| blue |                             |
| color|    even Color               | 
|      |                             |
======================================

そして私が期待していたこと

----- My Custom Cell ----------------
======================================
|                                    |
|    even Color                      | 
|                                    |
======================================
4

1 に答える 1

0

強調表示は によって処理されますNSOutlineView(実際には、 から継承された動作ですNSTableView)。NSOutlineViewとにかく、セルに注目するのではなく、サブクラス化とオーバーライドに注目する必要がありますhighlightSelectionInClipRect:。ここで、カスタム ハイライト描画を行う必要があります。

于 2011-02-07T22:30:12.330 に答える