2

在我的 OSX 应用程序中,我将 NSTblRowView 子类化为基于视图的自定义 tableView 自定义行选择颜色。

我正在使用以下方法覆盖:

- (void)drawSelectionInRect:(NSRect)dirtyRect 

我注意到当屏幕上至少有一个行被选中时,这个方法一直被调用。

我很好奇是否有办法不一直重绘行,但只在行选择更改时才这样做?!

任何形式的帮助都非常感谢!

4

1 回答 1

0

我很好奇是否有办法不一直重绘行,但只在行选择更改时才这样做?!

选择更改后,表格视图仅调用drawSelectionInRect:一次。(前提是没有过多的 setNeedsDisplay 调用)

drawRect:另一方面,必须至少调用两次(1x 用于取消选择的行,1x 用于新选择的行)。
I noticed, that NSTableViewoccasionally also redraws "in-between" rows when the selection changes. (eg rows 3-5 when the selection changes from row 2 to 6).

于 2014-04-15T06:41:53.293 回答