Kyle,

Thank you very much, that was what I needed to know!!

- Johannes

On Sun, Aug 10, 2008 at 8:09 PM, Kyle Sluder
<[EMAIL PROTECTED]> wrote:
> On Fri, Aug 8, 2008 at 9:52 AM, Johannes Fahrenkrug
> <[EMAIL PROTECTED]> wrote:
>> I'd like to display placeholder images until the table cell gets
>> displayed and then load the actual thumbnail, replacing the
>> placeholder image with the real thumbnail once it has loaded.
>> What would be the best way to do this? I'm thinking of something on
>> the lines of a proxy object...
>
> Are you using the NSTableView data source API?  I think that would be
> easier for what you want to do.  I'd create a placeholder NSImage at
> first, and when I'm asked for the data for my NSImage column, if I
> haven't yet finished downloading the image for that particular row,
> give the NSTableView my placeholder image.  Then, once the image has
> finished downloading, call [myTableView
> setNeedsDisplayInRect:NSIntersectionRect([myTableView
> rectForColumn:indexOfImageColumn], [myTableView
> rectForRow:rowOfUpdatedItem])].
>
> Remember that the rows of an NSTableView don't actually exist as one
> large dataset, so there isn't a one-to-one table cell to NSCell
> correspondence.  Instead, each NSTableColumn has its own cell, that it
> uses like a rubber stamp.  When a region of the table is marked as
> dirty (setNeedsDisplay:/setNeedsDisplayInRect:), the table view
> figures out which columns are affected, and tells them to draw
> themselves.  Each column then asks for the data for each table cell
> that needs to be redrawn, and passes this value off to the NSCell
> assigned to that column, which does the real drawing.
>
> So your image column has an NSImageCell.  When you start scrolling,
> the NSTableView figures out which logical row and column numbers have
> just been revealed by your scrolling maneuver, and kicks off the above
> process.  Your data source is asked "alright, row 12 column 2 needs to
> be painted, gimme the data", and then hands that data off to the cell
> belonging to the column.  The dirty little secret is that from the
> table view's perspective, there aren't actually any rows at all; it
> just does a bunch of math based on where the scroll point is located
> to convert graphics coordinates to logical rows.  Your data source is
> none the wiser.
>
> --Kyle Sluder
>



-- 
http://blog.springenwerk.com
_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to