[cell setTransparent] in NSOutlineView

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

  1. BollywooD macrumors 6502


    Apr 27, 2005
    Surfers Paradise
    I am using this method to hide the disclosure triangle, in nonexpandable items in an NSOutlineView:

    - (void)outlineView:(NSOutlineView *)theOutlineView willDisplayOutlineCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item
	if ([item count] == 0)
            [cell setTransparent:YES];
            [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. kainjow Moderator emeritus


    Jun 15, 2000
    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