I am trying to set up what is apparently a somewhat unusual behavior:

I have a formatter which I want to behave differently depending on an attribute of the value coming in, and on a user preference that can be toggled in the preference panel.

Basically, they are all floating-point values, but they could be coming from several types of sources: for one type, I want it formatted one way (call it type S), and for other types, I want the formatting to be one of two things depending on the value of a checkbox in the preferences (type V or P). The value itself could be the same but should look different for the different types.

I am hoping to do this in one formatter because these values are used in multiple text boxes and table row cells all over my interface, formatters are difficult or impossible to bind in XCode from what I can see, and different rows in a table (for example) may have different types in the same column.


Here is what I have so far: I used a category on NSNumber to add a "valueType" attribute as described at http://nshipster.com/associated-objects/.

The formatter checks this and the user preference when formatting an incoming value. It sets some instance variables on itself to remember what it last saw so that it can correctly default its interpretation of an entered value when trying to send it back.

In a cell-based table, it seems to be working perfectly, but in a view-based table it is not. In an NSTextField which is not in a table, it is not.

The binding for the values is indirect - to the effect of "myThing.value" - and if I change "myThing" but the new thing has the same numeric value, the formatter does not always seem to trigger to render the value in the correct format - it holds that of the previous thing. If I change the value from another control, when the bindings update the field, the formatting is suddenly corrected.

When the preference is changed, I'm using an observer within the class for myThing to set value back to itself to try to trick the bindings to update to the correct formatting - this is working in the cell-based table, but does not seem to work in the standalone NSTextField (I haven't added that code to the view-based table yet).

I'm seeing some other inconsistencies too that I am working through - is there an easier way to do this, or does anyone have any idea how I can try to diagnose what is causing the inconsistent behavior?



_______________________________________________

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

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

Reply via email to