问题描述
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的选择颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!