我试图在我自己的应用程序中模仿 MacOS 联系人应用程序对 GroupRows 的作用,但无法弄清楚或找不到任何地方如何摆脱组行上方和下方的线条。我尝试添加我自己的自定义 NSTableRowView 并且可以毫无问题地更改背景颜色,但不知道如何摆脱这些边框。

swift - NSTableView - 更改 GroupRow 样式-LMLPHP

swift - NSTableView - 更改 GroupRow 样式-LMLPHP

最佳答案

子类 NSTableRowView。然后在您的子类中添加一个属性,如下所示:

@interface CustomTableRowView : NSTableRowView

@property (nonatomic, assign) BOOL isGroupRow;

@end

覆盖子类中的 drawRect:
- (void)drawRect:(NSRect)dirtyRect {
    if (!self.isGroupRow)
        [super drawRect:dirtyRect];
}

然后在 tableView:rowViewForRow 中设置 isGroupRow:
tableRow.isGroupRow = [self tableView:tableView isGroupRow:row];

这将删除组行的顶部和底部分隔符。抱歉,我不会 Swift,但您可能可以轻松翻译它。希望能帮助到你!

10-06 04:55