如何通过cocoa绑定找出NSControl绑定的对象

时间:2015-07-03 07:40:07

标签: objective-c macos cocoa cocoa-bindings

我正在对NSTextField进行子类化,以便用户可以使用向上和向下光标键递增/递减整数值。它通过其委托工作正常,但通过setIntegerValue:设置用户界面状态不会更新通过cocoa绑定绑定的基础值。

我需要更新控件绑定的对象和使用的密钥路径,而不是更新控件,我需要更新模型。

我无法在任何地方找到如何执行此操作,因此我重载了- bind:toObject:withKeyPath:options:子类的NSTextField方法,其中绑定已建立,我可以在其中查看被观察对象和它的关键路径,但我肯定会复制控件中某处已有的信息。

有没有办法通过Cocoa绑定获取控件绑定到的对象和关键路径,而不会像这样乱砍?

我很感激任何帮助。

1 个答案:

答案 0 :(得分:0)

是的,还有更好的方法:

- (NSDictionary *)infoForBinding:(NSString *)binding
  

包含有关绑定信息的字典,如果未绑定绑定,则为nil。该字典包含三个键/值对:NSObservedObjectKey:对象绑定,NSObservedKeyPathKey:键路径绑定,NSOptionsKey:带有选项的字典及其绑定值。