> On 30 Sep 2015, at 10:20 pm, Peter Hudson <peter.hud...@me.com> wrote:
> 
> As the user scrolls one of the table views, the system does not render all 
> the details in the rows correctly.
> The most obvious one :-  I draw my own lines between rows - inserting  
> separator lines where appropriate.
> Hence, I override drawRect.  The process in here to calculate the placement 
> of lines is too long - hence the system, on occasions, will not draw them.


Really sounds like you’re Doing It Wrong™. If you’re using a view-based table 
(as is recommended these days) then the row view should be drawing this 
separator line (a given row could be flagged to include a separator if it only 
applies to some of them). NSTableView also supports various kinds of group rows 
and overlays if that is a better fit. There are also some delegate methods that 
are intended to be used for drawing the backgrounds of rows which could also be 
used. Overriding -drawRect: on NSTableView is invariably a no-no.

If calculating which row is a separator is taking a long time, there’s 
something seriously fishy about your code, as that sort of calculation should 
be trivial. For example, if you are adding up the heights of all possible rows 
above the line, you’re probably doing far too much work - the table already 
knows which views are visible and where they are, so there should only be a few 
to consider at most.

—Graham



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to