Re: ImageAndTextCell rendering weirdness
Re: ImageAndTextCell rendering weirdness
- Subject: Re: ImageAndTextCell rendering weirdness
- From: Sandy McGuffog <email@hidden>
- Date: Sat, 17 Jan 2009 21:23:24 +0200
Well, I haven't seen this specific behavior. But one thought is to
check that your images have their size set - as initialized from a
[NSImage imageNamed:], size is not set(!). This can cause all sort of
havoc. Second comment: there are actually several different versions
of ImageandTextCell in different developer docs; you might want to try
the more recent versions, if you're not already. Depending on which
version you have, the setSize may be being done for you. Or not.
Sandy
On Jan 17, 2009, at 8:26 PM, Andrew Shamel wrote:
Greetings Cocoa-Dev!
I am having the hardest time with a persistent and strange error
with Apple's ImageAndTextCell in my NSOutlineView.
I have the ImageAndTextCell set to be the outline's data cell via
NSTableColumn's -setDataCell: method, and I set the image of the
cell in the outlineView's delegate, using -
(void)outlineView:willDisplayCell:forTableColumn:item: And here's
where the trouble starts.
The problem I am encountering is this: When I have an image set in
the cell, and I go to edit the text of the *first* item in any
particular set of children, after the first keystroke, the text
field goes haywire, turning white, with the text appearing only as
shadow lines, and editing stops. If I click off the cell, the mess
goes away, the one keystroke's worth of edit remains, but does not
get noticed by the bindings.
Here is a picture of what happens: http://www.pileofdebris.com/editError.png
Does anyone have any thoughts about why this might be happening?
I've figured out that if my willDisplayCell: delegate method is
empty, this does not happen. Here is the code for that method,
should it be of any help.
- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:
(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
NSManagedObject *node = [item representedObject];
NSString *type = [node valueForKey:@"type"];
NSString *tag = [node valueForKey:@"tag"];
if ([type isEqual:@"collection"]) {
[cell setImage:[self defaultFolderImage]];
} else if ([type isEqual:@"library"]) {
if ([tag isEqual:@"booksLibrary"]) {
[cell setImage:[self booksLibraryImage]];
} else if ([tag isEqual:@"articlesLibrary"]) {
[cell setImage:[self articlesLibraryImage]];
} else {
[cell setImage:[self articlesLibraryImage]];
}
} else if ([type isEqual:@"section"]) {
[cell setImage:nil];
[cell setEditable:NO];
[cell setSelectable:NO];
} else if ([type isEqual:@"smartCollection"]) {
[cell setImage:[self smartFolderImage]];
}
}
Thanks so much for any input people can offer.
pax,
Andy S.
_______________________________________________
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