使用Cocoa绑定将可编程文本字段值更改传播到模型



我尝试了一个非常简单的实现,像这样:

@implementation ScrollingTextField
- (void)scrollWheel:(NSEvent *)event {
    self.doubleValue -= event.scrollingDeltaY;
}
@end

我将滚动文本字段的value绑定到其他对象。滚动现在可以很好地更新文本字段上的可见文本。但是,绑定值不会改变。

为什么绑定值不改变?或者:如何使绑定值识别更改?

绑定值不会因苹果的设计而改变。要在更改后将值传播到模型中,请调整以下代码:

NSDictionary *bindingInfo = [self infoForBinding:NSValueBinding];
[[bindingInfo valueForKey:NSObservedObjectKey] setValue:self.doubleValue
                                             forKeyPath:[bindingInfo valueForKey:NSObservedKeyPathKey]];

(感谢@DrummerB提供的苹果链接!)

最新更新