For anyone interested I decided to implement a subclass of NSObjectController.
Each NSMatrix object is removed from the NIB and replaced with individual
NSRadioButtons. I then add an NSObjectController instance to the NIB for each
NSMatrix replaced and set its class to RadioGroupController. I
Hi Graham,
I believe the part you are missing is the ability to use bindings and ideally
bindings setup in IB. The bulk of Sean McBride’s code simulates the binding
behavior of NSMatrix (i.e., keeping a model property in sync with the visual
display and vice versa) and his code does this only
Reworking the view controller to have a bunch of outlets to buttons is what I
am trying to avoid. The original implementation simply bound the radio group
(NSMatrix) either to a numeric property or to an object property on the model.
The code Sean McBride provided shows the lengths one has to
I have a number of NSMatrix instances that group radio buttons. Most bind the
selectedIndex or selectedTag bindings available on NSMatrix to a numeric value
in a model object. The others bind the contentObjects and selectedObject
binding available on NSMatrix. As NSMatrix is informally
I opened a radar a while back and got this answer:
"Shared file lists are no longer supported. There is no exact replacement API.”
“If you want to manage your recent documents list, you should use
NSDocumentController."
“If you want to run a background tool independent of your main application,
Perhaps just a little too OCD; however, if one is sending a message like count
to a large number of containers using nil (Null) can be considerably more
efficient then passing an empty shared instance. The Objective-C pattern when
sending a message to a nil object pointer avoids the overhead of
Rarely do I suggest performSelector: but it happens to work here. I’d love to
know more about why dispatch doesn’t work so well however.
It is only a slightly educated guess, but I suspect it is because the UI is
queuing work as well. Running under Instruments shows a number of activities