> 
> In practice, I never do it that way any more. I always create a derived 
> property on the view or window controller that’s based on the data model 
> property. So, from the views’ point of view, the view/window controller *is* 
> the data model, but it’s insulated from the real data model. (Specifically, 
> doesn’t have to #import the data model header files, which has housekeeping 
> benefits.)
> 
> The cost is writing a trivial getter and setter, and a 
> ‘keyPathsForValuesAffecting…’ method in the controller.
> 

I've tried really hard to understand this but I'm not quite getting it, sorry, 
must just be a bit dense today. 

My model object has a property, codeURL, it's a URL. 

My view has an NSTextField which is bound to the codeURL via a transformer. All 
good thus far. 

The browse button pulls up an NSOpenPanel and the selected URL of that wants to 
be set back on the codeURL property. Currently I have the model object as a 
property of the view and in the NSOpenPanel callback I'm doing

        [ self.modelObject setCodeURL:newURL ];

which sets the URL and the change propagates back to the text view via the 
binding. That does indeed require importing the model object header. 

What derived property can I write on the view which removes that dependency? I 
can write a derived codeURL property on the view quite easily, the setter of 
which updates the NSTextField, the getter of which uses the NSTextField string, 
that's a setter/getter and keyPathsForValuesAffecting.. . I can then have the 
browse button set that property with 

        [ self setCodeURL:newURL ] 

instead .. but how do I then connect/bind that codeURL property to the real one 
in the model object? 



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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

This email sent to arch...@mail-archive.com

Reply via email to