gpt4 book ai didi

objective-c - 如何更改 NSOutlineView 的每个单元格的颜色或 NSTableCellView

转载 作者:行者123 更新时间:2023-12-03 17:40:11 24 4
gpt4 key购买 nike

我已经研究了很多问题,但找不到基于 View 的 NSOutlineView 的好的解决方案

Coloring NSTableView Text per row

Change color of NSTableViewCell

Custom background colors for NSTableCellView

我正在尝试将每一行设置为我想要的任何颜色。我在某处读过,我需要对 NSTableRowView 进行子类化,我现在已经完成了。

根据AppleDocs ,我看到以下方法:

– drawBackgroundInRect:
– drawDraggingDestinationFeedbackInRect:
– drawSelectionInRect:
– drawSeparatorInRect:

我该如何设置各行的背景颜色?我上面的路线是不是走错了?

编辑:如下(还编辑了标题)

由于我使用的是 NSOutlineView 而不是 NSTableView,因此当我更改单元格的背景颜色时,图像如下所示。左侧的披露箭头未着色。有没有办法改变 NSOutlineView 整行的颜色?

this

最佳答案

您可以子类化 NSTableViewCell,并向其添加一个设置其颜色的方法。

NSTableViewCell 已经是 NSView 的子类,因此在您的子类中,您将添加以下方法:

- (void)setBackgroundColor {
self.layer.backgroundColor = CGColorCreateGenericRGB(0, 0, 0, 1.0f); // or whatever color
}

或者类似的东西。您可能希望将颜色作为该方法的参数。然后,在 TableView 委托(delegate)中,您可以根据传递给委托(delegate)方法的行索引设置颜色。例如:

- (UITableViewCell *)tableView:(UITableView *)table cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [table dequeueReusableCellWithIdentifier:@"Cell"];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];

if (indexPath.row % 2) {
[cell setBackgroundColor:[UIColor redColor]]; // or something like that
}
}

关于objective-c - 如何更改 NSOutlineView 的每个单元格的颜色或 NSTableCellView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18113744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com