On Apr 29, 2009, at 9:31 AM, Chris Tracewell wrote:

Kyle,

Thanks for the reply. Yes I know and agree on the issue of the usability. I struggled with this but ultimately felt it was essential as other options disassociated the property from the object too much or made it appear that a given object could indeed have the property enabled.

What I made work, and feels like the best solution is to use was a OV delegate I had missed. It's nice as it requires no custom drawing and allows me to inspect the object. It took one IBOutlet to bind to the column I wanted to modify.

-(NSCell *)outlineView:(NSOutlineView *)outlineView dataCellForTableColumn:(NSTableColumn *)tableColumn item:(id)item
        {
if (tableColumn == myAttributeColumn && ![[[[item representedObject] representedObject] myType] isEqualToString:@"style"])
                {
                return [NSTextFieldCell new];
                }
                
        return [tableColumn dataCellForRow:item];
        }


This is not a fully correct solution. Your code as-is will leak lots of memory (unless you are creating a GC app, in which case it won't have good performance due to creating too many cells). You probably want to use -willDisplayCell to reset or properly setup your state for the cells.

-corbin




_______________________________________________

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 arch...@mail-archive.com

Reply via email to