更改基于视图的NSTableView的选择颜色

更改基于视图的NSTableView的选择颜色

本文介绍了更改基于视图的NSTableView的选择颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

OS X应用程序中的标准高亮颜色为蓝色。

Standard highlighting color in OS X applications is blue.

可以将其更改为其他颜色,例如灰色?

Is it possible to change it to another color, e.g. gray?

注意,我使用从OS X 10.7开始的新的基于视图的 NSTableView p>

Note that I am using the new view-based NSTableView available starting from OS X 10.7.

推荐答案

由于您使用基于视图的NSTableView,您可以将NSTableRowView子类化,将其馈送到表委托方法 - (NSTableRowView *)tableView:(NSTableView *)tableView rowViewForRow:(NSInteger)row; ,然后在行视图类中自定义您的选择

Since you're using the view based NSTableView, you can subclass NSTableRowView, feed it to the table delegate method - (NSTableRowView *)tableView:(NSTableView *)tableView rowViewForRow:(NSInteger)row;, then customize your selection in the row view class.

这是一个例子:

- (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 colorWithCalibratedWhite:.82 alpha:1.0] setFill];
        NSBezierPath *selectionPath = [NSBezierPath bezierPathWithRoundedRect:selectionRect xRadius:6 yRadius:6];
        [selectionPath fill];
        [selectionPath stroke];
    }
}

这篇关于更改基于视图的NSTableView的选择颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-16 06:09