使用cocoa在nstable视图中显示水平网格线

时间:2011-02-25 11:50:27

标签: objective-c cocoa

嗨,我在我的应用程序中使用NSTableView。

我希望根据行数显示网格线,但即使行数非常少,也会显示很多行。

这是一种常见的行为吗?

或者我做错了什么? 我已经检查了xib的水平网格线选项。

无法理解如何使用代码实现此目的。

2 个答案:

答案 0 :(得分:2)

到目前为止,我觉得最适合我的是以下代码。 只是欺骗原始的网格绘图代码,只在填充的行上绘制。

子类NSTableView,如果需要,并覆盖drawGridInClipRect:(NSRect)clipRect,如下所示:

- (void)drawGridInClipRect:(NSRect)clipRect
{
    NSRect lastRowRect = [self rectOfRow:[self numberOfRows]-1];
    NSRect myClipRect = NSMakeRect(0, 0, lastRowRect.size.width, NSMaxY(lastRowRect));
    NSRect finalClipRect = NSIntersectionRect(clipRect, myClipRect);
    [super drawGridInClipRect:finalClipRect];
}

答案 1 :(得分:1)

如果我理解你的问题,我可以说:“是”。如果设置它,即使是空的,也可以从NSTableView中获得条纹。

我意识到你还想以编程方式管理这些行。考虑在NSTableView Class Reference

上查看此方法setGridStyleMask :. 祝你好运。