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.
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 mails | Author | Date |
|---|---|---|
| Ralph Manns | Feb 23, 02:58 | |
| Jonathan Dann | Feb 23, 23:44 | |
| Ralph Manns | Feb 24, 22:35 | |
| Jonathan Dann | Feb 24, 23:37 | |
| Ralph Manns | Feb 24, 23:45 | |
| Keith Duncan | Feb 25, 00:56 | |
| I. Savant | Feb 25, 01:07 | |
| Jonathan Dann | Feb 25, 23:16 |






Cocoa mail archive

