在我的 OSX 应用程序中,我将 NSTblRowView 子类化为基于视图的自定义 tableView 自定义行选择颜色。
我正在使用以下方法覆盖:
- (void)drawSelectionInRect:(NSRect)dirtyRect
我注意到当屏幕上至少有一个行被选中时,这个方法一直被调用。
我很好奇是否有办法不一直重绘行,但只在行选择更改时才这样做?!
任何形式的帮助都非常感谢!
在我的 OSX 应用程序中,我将 NSTblRowView 子类化为基于视图的自定义 tableView 自定义行选择颜色。
我正在使用以下方法覆盖:
- (void)drawSelectionInRect:(NSRect)dirtyRect
我注意到当屏幕上至少有一个行被选中时,这个方法一直被调用。
我很好奇是否有办法不一直重绘行,但只在行选择更改时才这样做?!
任何形式的帮助都非常感谢!
我很好奇是否有办法不一直重绘行,但只在行选择更改时才这样做?!
选择更改后,表格视图仅调用drawSelectionInRect:
一次。(前提是没有过多的 setNeedsDisplay 调用)
drawRect:
另一方面,必须至少调用两次(1x 用于取消选择的行,1x 用于新选择的行)。
I noticed, that NSTableView
occasionally also redraws "in-between" rows when the selection changes. (eg rows 3-5 when the selection changes from row 2 to 6).