如何通过 cocoa 绑定找出 NSControl 绑定到的对象
How to find out what object an NSControl is bound to via cocoa bindings
我正在对 NSTextField
进行子类化,以便用户可以使用向上和向下光标键递增/递减整数值。它通过其委托工作正常,但通过 setIntegerValue:
设置用户界面状态不会更新通过 cocoa 绑定绑定的基础值。
我需要更新模型而不是更新控件,所以我需要找到控件绑定到的对象和使用的键路径。
我在任何地方都找不到如何做到这一点,所以我重载了我的 NSTextField
子类的 - bind:toObject:withKeyPath:options:
方法,在该方法中建立了绑定,并且我可以在其中看到观察到的对象及其关键路径,但我肯定是在复制控件中某处已有的信息。
有没有一种方法可以通过 Cocoa 绑定获取控件绑定的对象和关键路径,而无需像这样四处乱窜?
如有任何帮助,我将不胜感激。
是的,有更好的方法:
- (NSDictionary *)infoForBinding:(NSString *)binding
A dictionary with information about binding, or nil if the binding is not bound. The dictionary contains three key/value pairs: NSObservedObjectKey
: object bound, NSObservedKeyPathKey
: key path bound, NSOptionsKey
: dictionary with the options and their values for the bindings.
我正在对 NSTextField
进行子类化,以便用户可以使用向上和向下光标键递增/递减整数值。它通过其委托工作正常,但通过 setIntegerValue:
设置用户界面状态不会更新通过 cocoa 绑定绑定的基础值。
我需要更新模型而不是更新控件,所以我需要找到控件绑定到的对象和使用的键路径。
我在任何地方都找不到如何做到这一点,所以我重载了我的 NSTextField
子类的 - bind:toObject:withKeyPath:options:
方法,在该方法中建立了绑定,并且我可以在其中看到观察到的对象及其关键路径,但我肯定是在复制控件中某处已有的信息。
有没有一种方法可以通过 Cocoa 绑定获取控件绑定的对象和关键路径,而无需像这样四处乱窜?
如有任何帮助,我将不胜感激。
是的,有更好的方法:
- (NSDictionary *)infoForBinding:(NSString *)binding
A dictionary with information about binding, or nil if the binding is not bound. The dictionary contains three key/value pairs:
NSObservedObjectKey
: object bound,NSObservedKeyPathKey
: key path bound,NSOptionsKey
: dictionary with the options and their values for the bindings.