On May 1, 2013, at 08:34 , "Gerriet M. Denkmann" <[email protected]> wrote:
> - (id)tableView:(NSTableView *)aTableView
> objectValueForTableColumn:(NSTableColumn *)aTableColumn
> row:(NSInteger)rowIndex
> {
> NSDictionary *aLine = self.dataArray[rowIndex];
> NSTableCellView *cellView = [ aTableView makeViewWithIdentifier:
> @"DieSpalte" owner: self ];
> [ cellView.textField setStringValue: aLine[kNameKey] ];
> [ cellView.imageView setImage: aLine[kImageKey] ];
> NSLog(@"%s %ld %@",__FUNCTION__, rowIndex, cellView);
> return cellView;
> }
This is wrong. You should not create a cell view in this method, and you should
not return a cell view as a result. The value returned from this method becomes
the the "objectValue" property of the cell view. Because you're trying to
create the cell view in the wrong place, the table view is creating one for you
(a different one), and that view isn't getting its text or image set to
anything useful.
Instead, you should be putting the above code in a
'tableView:viewForTableColumn:row:' delegate method. Since you're (apparently)
not using any bindings within your cell view, you don't need objectValue at all
-- neither the data source method nor the property.
_______________________________________________
Cocoa-dev mailing list ([email protected])
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 [email protected]