Wednesday 15 September 2010

objective c - How do I tell if any values have changed for NSUserDefaultsController sharedUserDefaultsController -



objective c - How do I tell if any values have changed for NSUserDefaultsController sharedUserDefaultsController -

i have typical case of implementing preference panel application, i've run problem detecting changes preference values. in case don't want apply changes automatically i've set

[[nsuserdefaultscontroller shareduserdefaultscontroller] setappliesimmediately:no];

i've bound controls in preference panel shareduserdefaultscontroller.

and have cancel , apply button in preference panel, , want enable apply button if changes had been made shareduserdefaultscontroller values.

so thought bind hasunappliedchanges of shareduserdefaultscontroller apply buttons enable property. hasunappliedchanges homecoming true, if no changes have been made. or returns false long not load preference panel window. window loaded , reaches awakefromnib, hasunappliedchanges returns true. , there on can't reset false. doesn't matter if save shareduserdefaultscontroller.

so questions are:

how observe if values of shareduserdefaultscontroller has changed?

and hasunappliedchanges work when bind controls shareduserdefaultscontroller?

appreciate help can get.

edit

i tried observing nsuserdefaultsdidchangenotification, post update after value saved user defaults. in other words, after call

[(nsuserdefaultscontroller*)[nsuserdefaultscontroller shareduserdefaultscontroller] save:sender];

so unless i'm using wrong way wont work far can tell.

objective-c xcode osx cocoa cocoa-bindings

No comments:

Post a Comment