• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
NSTreeController -moveNode:toIndexPath doesn't work correctly
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NSTreeController -moveNode:toIndexPath doesn't work correctly


  • Subject: NSTreeController -moveNode:toIndexPath doesn't work correctly
  • From: Rob Keniger <email@hidden>
  • Date: Sat, 27 Sep 2008 16:55:39 +1000

Hi all,

I'm having a problem with the -moveNode:toIndexPath: method of NSTreeController, which is new to 10.5.

I'm not using Core Data, I have a very simple model object like so:

@interface Item : NSObject {
	NSMutableArray* children;
	Item* parent;
	NSString* text;
	BOOL isRootItem;
}
@property(assign) NSMutableArray* children;
@property Item* parent;
@property (copy) NSString* text;
@property BOOL isRootItem;
-(id) initWithParent:(Item*) theParent;
@end

I am using the "children" property as the children key of the NSTreeController.

When I set up a hierarchy of these objects and call - moveNode:toIndexPath:, the object is moved correctly in the NSOutlineView but the model is not updated correctly.

Say I have a hierarchy like this:

Top Level Object 1
Top Level Object 2
	Sub Level Object 1
	Sub Level Object 2
	Sub Level Object 3
	Sub Level Object 4
Top Level Object 3
Top Level Object 4

If I move Top Level Object 1 to the index path [1][0], it should be inserted as a child of Top Level Object 2, before the existing Sub Level Object 1.

What happens, however, is that it is always added as the last object in the Sub Level Object list:
Top Level Object 2
Sub Level Object 1
Sub Level Object 2
Sub Level Object 3
Sub Level Object 4
Top Level Object 1
Top Level Object 3
Top Level Object 4


Note that this is only occurring in the "real" object hierarchy, the NSTreeNodes reflect the correct hierarchy.

When I had a look at the backtraces it seems that NSTreeController eventually calls -addObject: on the children array, which of course adds the item to the end of the children.

Does anyone know why this is occurring? Is there a workaround, or am I doing something wrong?

--
Rob Keniger



_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Prev by Date: Re: problems in runModal in NSOpenPanel used with defaults
  • Next by Date: Re: sending email with attachement from cocoa
  • Previous by thread: NSURLConnection issues
  • Next by thread: design pattern for data acquisition in background thread?
  • Index(es):
    • Date
    • Thread