> On 16 Jun 2017, at 23:18, Quincey Morris > <quinceymor...@rivergatesoftware.com> wrote: > > On Jun 16, 2017, at 14:41 , Jonathan Mitchell <li...@mugginsoft.com> wrote: >> >> I sometimes use the default NSObject bind: to set up a simple one way >> operation as you describe as opposed to a discrete observation. > > With macOS 10.13, the new block/closure-based KVO “addObserver” method is > probably an easier way, although you do have to remove it manually. > The block/closure improvements are long overdue IMHO.
I use a home brewed approach using BPBlockValueTransformer : NSValueTransformer with bindings that gives a lot more flexibility. A trivial example involving a closure would be: BPBlockValueTransformer *blockValueTransformer = [BPBlockValueTransformer valueTransformerWithBlock:^id(NSNumber *value) { strongify(self); return ([value boolValue] || self.isFree)? @“Freedom for all" : @“Freedom for no-one"; }]; [self.titleTextField bind:NSValueBinding toObject:self.repObjCon withKeyPath:@"selection.isHidden" options:@{NSValueTransformerBindingOption : blockValueTransformer}]; The downside is that you cannot establish the binding in the NIB. _______________________________________________ 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