On Aug 18, 2010, at 18:00, Frank D. Engel, Jr. wrote:

> I have a controller class which is represented as a simple object (cube icon) 
> in Interface Builder.  This class has an "id" field to which I assign various 
> instances of core data entities (represented by a subclass of NSManagedObject 
> by selecting them in an NSBrowser whose delegate is the controller class.
> 
> I then have an NSSlider and an NSCheckbox which both have their value 
> bindings bound to the same field of the selected object, via the controller 
> class; in other words:
> 
> 
> @interface MyBrowser : NSObject
> {
>    id       selectedWhatever;
> }
> 
> - (id)selectedWhatever;
> - (void)setSelectedWhatever:(id)whatever;
> 
> 
> 
> Then the "value" bindings of the NSSlider and NSCheckbox are both 
> "selectedWhatever.someField".
> 
> 
> The problem I am having is that if I move the slider, the value of the field 
> does not change right away, but if I select something else and then select 
> the modified entity again (changes selectedWhatever to something else and 
> back), the field shows the modified value.
> 
> It almost seems as if the slider is not sending updates to the entity until 
> the entity is about to change?
> 
> Similarly, if I edit the value in the text field, the slider does not move 
> until I select something else then come back.
> 
> How can I get the text field and slider to update in sync with each other?
> 
> 
> If it helps, the class being used for the "selectedWhatever" values has the 
> field defined as:
> 
> @property float someField;

Since your property is declared to have a scalar (float) value, it must be a 
custom accessor of your custom NSManagedObject subclass. (Core Data's 
internally-provided properties are all object values, never scalars.) See 
"Scalar Values" in: 

        
http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CoreData/Articles/cdNSAttributes.html#//apple_ref/doc/uid/TP40001919-SW13

That means you've probably forgotten to implement KVO compliance in the setter 
for this property. (Overridden Core Data setters must invoke 
didChange/willChangeValueForKey: explicitly.) See "Custom Implementation" in:

        
http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CoreData/Articles/cdAccessorMethods.html#//apple_ref/doc/uid/TP40002154-SW1


_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to