【发布时间】:2014-04-12 20:00:25
【问题描述】:
所以我将这个 textField someField 绑定到 InterfaceBuilder (IB) 中的属性 someText。
在我的代码中的任何地方,当我更改 someText 时,someField 内容会相应更新,反之亦然。
除了方法-observeValueForKeyPath:ofObject:change:context:之外的任何地方
确实,我正在观察someText,因此当文本字段中的值发生更改时,绑定会修改someText,我可以对其执行一些验证。
发生这种情况时,我可以执行以下操作:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
[...]
//keyPath is @"someText"
if (enteredValueIsNotValid) {
[object setValue:validValue forKey:keyPath];
}
[...]
}
调用[object setValue:validValue forKey:keyPath]后,someText取值validValue。正如预期的那样。但是因为有投标,我也希望看到validValue 出现在我的文本字段someField 中。但它不会发生!
我显然遗漏了一些东西,但不知道是什么。任何帮助将不胜感激!干杯。
【问题讨论】:
-
嗨 Baldoph,很好奇你为什么删除了你的问题 here。你找到答案了吗?
-
@JAL 刚刚看到您的问题,对不起!我完全忘记了为什么需要它,为什么要删除它……恐怕在这里没有太大帮助:/
标签: objective-c macos cocoa binding key-value-observing