Skip navigation.
 
mlRe: NSOutlineView autosaving of expanded/collapsed state
FROM : Ralph Manns
DATE : Sun Feb 24 23:45:55 2008

Am 24.02.2008 um 23:37 schrieb Jonathan Dann:

> Hi Ralph,
>
> Here's my code from an NSOutlineView subclass
>
> - (NSArray *)expandedItems;
> {
>     NSMutableArray *expandedItemsArray = [NSMutableArray array];
>     NSUInteger row, numberOfRows = [self numberOfRows];
>     
>     for (row = 0 ; row < numberOfRows ; row++)
>     {
>         id item = [self itemAtRow:row];
>         if ([self isItemExpanded:item])
>             [expandedItemsArray addObject:[item representedObject]]; // 
> create an array of only the expanded items in the list
>     }
>     
>     return [[expandedItemsArray copy] autorelease];
> }
>
> The returned array can then be archived.
>
> It uses NSTreeNode and -representedObject, so is 10.5 only. For 10.4 
> there is an undocumented method for the private class that 
> NSTreeController used in 10.4 that does the same thing, can't 
> remember the method name but it's on Scott Stevenson's blog 
> somewhere, just Google theococoa.com and NSTreeController.
>
> Passing the (now unarchived) array to the method below will expand 
> them again.
>
> - (void)expandItems:(NSArray *)array;
> {
>     NSUInteger row, numberOfRows = [self numberOfRows];
>     for (MyNode *savedItem in array) {
>         for (row = 0 ; row < numberOfRows ; row++) {
>             id item = [self itemAtRow:row];
>             MyNode *realObject = [item representedObject];
>             if ([realObject.nodeName isEqualToString:savedItem.nodeName]) {
>                 [self expandItem:item];
>                 numberOfRows = [self numberOfRows];
>                 break;
>             }
>         }
>     }    
> }
>
> Enjoy,
>
> Jon


Hi Jon,

thanks for your response and providing your code. Works great.

Ralph.

Related mailsAuthorDate
mlNSOutlineView autosaving of expanded/collapsed state Ralph Manns Feb 23, 02:58
mlRe: NSOutlineView autosaving of expanded/collapsed state Jonathan Dann Feb 23, 23:44
mlRe: NSOutlineView autosaving of expanded/collapsed state Ralph Manns Feb 24, 22:35
mlRe: NSOutlineView autosaving of expanded/collapsed state Jonathan Dann Feb 24, 23:37
mlRe: NSOutlineView autosaving of expanded/collapsed state Ralph Manns Feb 24, 23:45
mlRe: NSOutlineView autosaving of expanded/collapsed state Keith Duncan Feb 25, 00:56
mlRe: NSOutlineView autosaving of expanded/collapsed state I. Savant Feb 25, 01:07
mlRe: NSOutlineView autosaving of expanded/collapsed state Jonathan Dann Feb 25, 23:16