Re: Alternatives to NSMatrix that uses bindings similar to NSMatrix's bindings
Re: Alternatives to NSMatrix that uses bindings similar to NSMatrix's bindings
- Subject: Re: Alternatives to NSMatrix that uses bindings similar to NSMatrix's bindings
- From: Graham Cox <email@hidden>
- Date: Fri, 08 Apr 2016 23:01:53 +1000
> On 8 Apr 2016, at 10:32 PM, Graham Cox <email@hidden> wrote:
>
> Your controller might, and could effect the binding in code, using -[NSObject bind:toObject:withKeyPath:options:] and an outlet to the group view. As work goes, that’s pretty minimal, and affects only the controller, as it should.
I confess I’m unfamiliar with bindings, but I just tried an experiment. In the test code, I added the following code to the class acting as a controller:
- (void) awakeFromNib
{
[mLabel bind:@"objectValue" toObject:mRadioGroup withKeyPath:@"selectedIndex" options:nil];
}
Here, mLabel and mRadioGroup are outlets to a text field and the radio group created earlier respectively. Because the -bind… method is declared on NSObject, it is universal - the controller doesn’t need to import the GCRadioGroupView header so it’s completely unaware of its implementation, other than that it has a ’selectedIndex’ property. mLabel here represents the “model”, though in fact it’s another view. If you want to bind in both directions, you have to write two lines of code like this.
This works, the label displays the value of the selected index as expected when the radio buttons are operated. Apart from this one line of code in the controller, it’s all done in IB (hooking up two outlets and adding the radio buttons to the group view). I’d call that about as good as you’re going to get unless IB can be made to display the exposed bindings, which unfortunately seems to be unsupported (why!!??).
If it bothers you that ‘selectedIndex’ is unique to this class, call it whatever you want. It could be ‘selectedTag’ for all it matters, but since you need to bind in code, it may as well be descriptive.
—Graham
_______________________________________________
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