Re: Strange problem drawing a custom grid in NSTableView
Re: Strange problem drawing a custom grid in NSTableView
- Subject: Re: Strange problem drawing a custom grid in NSTableView
- From: Eric Gorr <email@hidden>
- Date: Fri, 11 Feb 2011 09:24:27 -0500
I filed a bug report on this: rdar://8988596
Hopefully this will be fixed soon or a workaround provided.
In the meantime, I will just disable the Automatically Hide Scrollers feature of NSScrollView.
On Feb 10, 2011, at 7:07 PM, Eric Gorr wrote:
> Unfortunately, no.
>
> - (void)drawRect:(NSRect)dirtyRect
> {
> [super drawRect:dirtyRect];
> }
>
> And, I just checked to see what would happen if I used the default column line drawing code instead of my custom code and I see the same problem.
>
> It appears that there is a general problem with drawing the vertical column lines in a NSTableView and it has nothing to do with my code.
>
> What I also noticed is that if I the scrollbars are always shown, the problem does not happen.
>
> So, I believe, the problem can be narrowed down to only when the automatically show/hide scrollbars is turned on.
>
> I suppose I will file a bug report, but I would like to know if there is a way to work around this problem.
>
> Thank you.
>
>
> On Feb 10, 2011, at 6:58 PM, Corbin Dunn wrote:
>
>> override -drawRect: in NSTableView; just call [super drawRect:] and don't do anything else. Does that fix it?
>>
>> corbin
>>
>> On Feb 10, 2011, at 2:51 PM, Eric Gorr wrote:
>>
>>> I've got a sample project demonstrating the problem:
>>>
>>> http://ericgorr.net/cocoadev/TableViewGridDrawing.zip
>>>
>>> I've included a screen recording showing the problem as well.
>>>
>>> Basically, I need to drawn some vertical column line in a column. Since, in the real case, these lines would be drawn for only some of the columns, I need to completely customize the -drawGridInClipRect: method.
>>>
>>> So,, the problem is that the rightmost line is not always drawn while I am resizing a column and it goes off the right edge and comes back.
>>>
>>> Whether the last line is drawn or not seems to be dependent upon how fast I am resizing a column.
>>>
>>> If I let the mouse button go and start again, the last line is drawn immediately.
>>>
>>> As best as I can determine there is some kind of caching of the grid lines going on because I can see my drawing code being called, but not see the complete result appear in the table.
>>>
>>> All of the other lines draw as expected.
>>>
>>> I thought it might be a clipping issue, but I do not believe that is the case.
>>>
>>> If anyone has any thoughts, I would be interested.
>>>
>>> Thank you.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> 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:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden