Question

I've got a window set up with two NSTableViews. In Core Data I have two entities set up, one of them containing members of the other, larger grouping (e.g. cars and manufacturers). I've got entry pages set up for each entity and they play nicely there (no faulting when trying to select from a many-to-one in a drop menu). What I'm trying to do now is take that one step further so that when I select a manufacturer in the main NSTableView, the list of cars related to that manufacuturer will appear in the second NSTableView.

I've tried using bindings similar to what I've done for the manufacturer popup button, feeding the value from the cars entity, however it's simply showing a list of all the car entries, regardless of which manufacturer I select. I don't see any options for a predicate to filter it, however, and if I set the binding's key path to manufacturer.cars, it shows a relationship fault. How can I filter what gets displayed in the child table?

Was it helpful?

Solution

Have two NSArrayControllers. Bind the contentArray of the cars controller to the manufacturers controller; the controller key is selection (i.e., the selected manufacturer), and the model key path is that of the property containing the manufacturer's cars.

Then, bind the cars table view's columns to properties of the cars controller's arrangedObjects.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top