1. Welcome to the new MacRumors forums. See our announcement and read our FAQ

[cell setTransparent] in NSOutlineView

Discussion in 'Mac Programming' started by BollywooD, Apr 11, 2009.

  1. macrumors 6502

    #1
    I am using this method to hide the disclosure triangle, in nonexpandable items in an NSOutlineView:

    Code:
    - (void)outlineView:(NSOutlineView *)theOutlineView willDisplayOutlineCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item
    {
	if ([item count] == 0)
            [cell setTransparent:YES];
    	else
            [cell setTransparent:NO];
    }
    it does what i want, but slows the OutlineView down to a crawl. Is there a better way to implement this?
    I only want a disclosure triangle shown for expandable items... not every item in my OutlineView.

    thanks in advance

    <edit>Should mention, I am using NSTreeController for the Datasource</edit>
     
  2. Moderator emeritus

    kainjow

    #2
    I've never used NSTreeController before, but try implementing an isLeaf method in your object. From the docs:
    Edit: if you're targeting 10.5+ with your app, it might help to make your node objects a subclass of NSTreeNode.
     

Share This Page