【问题标题】:NSOutlineView Control HighLight and indentationNSOutlineView 控制高亮和缩进
【发布时间】:2011-02-07 21:44:33
【问题描述】:

在我的大纲视图中,我使用的是 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                      | 
|                                    |
======================================

【问题讨论】:

    标签: objective-c cocoa nstableview nsoutlineview nscell


    【解决方案1】:

    突出显示由NSOutlineView 处理(实际上,它是从NSTableView 继承的行为)。无论如何,您应该看看子类化NSOutlineView 和覆盖highlightSelectionInClipRect:,而不是关注单元格。这就是您应该进行自定义高亮绘图的地方。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多