我正在使用基于查看的NSOutlineView
,这是子类。选择Outline view
时,在大纲视图中显示默认蓝色。如何改变选择颜色?
注意:我使用的是基于视图的outlineview,而不是基于单元格的。
我找到了基于单元格的outlineview的方法。
-(void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item;
答案 0 :(得分:2)
你必须继承NSTableRowView,然后覆盖你的子类中的方法drawSelectionInRect:
- (void)drawSelectionInRect:(NSRect)dirtyRect {
if (self.selectionHighlightStyle != NSTableViewSelectionHighlightStyleNone) {
NSRect selectionRect = NSInsetRect(self.bounds, 2.5, 2.5);
[[NSColor colorWithCalibratedWhite:.65 alpha:1.0] setStroke];
[[NSColor redColor] setFill];
NSBezierPath *selectionPath = [NSBezierPath bezierPathWithRoundedRect:selectionRect xRadius:6 yRadius:6];
[selectionPath fill];
[selectionPath stroke];
}
}
然后在您的NSOutlineView委托中调用以下内容并返回新的子类
- (NSTableRowView *)outlineView:(NSOutlineView *)outlineView rowViewForItem:(id)item
此方法似乎没有记录,请参阅answer