On 31/08/2008, at 12:20 PM, Chris Hanson wrote:

More or less expected in hindsight. There's no value of the string to set, instead I want to replace the string object in the array. So... what do I do? Do I really need to make up a model object to contain the string, just to use bindings here? There's absolutely _no_ other data I need to associate with the string, so it'd really be pointless otherwise.

Bindings are intended to work with model objects, so yes, you will need to create a model object "to contain the string."

Think of it this way: The string probably isn't "just a string." It stands for something -- for example, it could be the name of a computer. While the name of a computer might be the only thing worth displaying in that particular table, it doesn't mean that you're not displaying the name *of a* computer.


An NSArray of NSStrings isn't mutable, so if you want to edit the values you need to wrap your NSStrings in some sort of mutable container that is KVC-compliant.

One way is to create an NSMutableArray of NSMutableDictionary objects, each containing an NSString. You can then bind to the dictionary key you've used to store the string and the NSArrayController will be able to update your model object.

E.g:

NSString* myStringKey=@"myStringKey";

NSMutableArray* myStrings=[NSMutableArray arrayWithObjects:
[NSMutableDictionary dictionaryWithObject:@"Foo" forKey:myStringKey], [NSMutableDictionary dictionaryWithObject:@"Bar" forKey:myStringKey], [NSMutableDictionary dictionaryWithObject:@"FooBar" forKey:myStringKey],
                                                        nil];

You then bind to arrangedObjects.myStringKey in your NSTableView.

Using a vanilla NSMutableDictionary as your "model object" is preferable to creating a custom object just to hold a string.

--
Rob Keniger



_______________________________________________

Cocoa-dev mailing list ([email protected])

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to