Re: Live updating user defaults from a prefpane to a running app
Re: Live updating user defaults from a prefpane to a running app
- Subject: Re: Live updating user defaults from a prefpane to a running app
- From: Shamyl Zakariya <email@hidden>
- Date: Thu, 15 Jul 2010 08:19:17 -0400
I have written a dummy app which uses the CFPreferences API to write
to the headless app's domain, and uses NSDistributedNotificationCenter
to broadcast an update message. The headless app receives that update
message, and calls synchronize on its standardUserDefaults instance.
However, this doesn't trigger the NSUserDefaultsController's bindings to update.
If I manually examine the defaults values, I see the newly set values,
which is great. But I can't figure out how to get the
NSUserDefaultsController to notice that the defaults have changed and
to accordingly cause bound values to update.
Any ideas?
On Wed, Jul 14, 2010 at 3:21 PM, Shamyl Zakariya <email@hidden> wrote:
>> Yes. The app that writes the pref should call synchronize and send its signal, then the app that reads calls synchronize when it receives it. I have a pair of apps that do that; I use NSDistributedNotificationCenter and the CF equivalent CFNotificationCenterGetDistributedCenter for the signals.
>
> That sounds quite elegant, thanks!
>
>
> --
>
> shamyl zakariya
> - so much for pathos
>
>
>
> On Jul 14, 2010, at 3:03 PM, Lee Ann Rucker wrote:
>
>>
>> On Jul 14, 2010, at 9:20 AM, Greg Guerin wrote:
>>
>>> Shamyl Zakariya wrote:
>>>
>>>
>>>> If not, what's the best practice here? And if I were to use some
>>>> sort of apple event fired from the prefpane or some other technique
>>>> to let the app know its defaults have changed, how do I get the
>>>> user defaults controller in the headless app to apply the updates?
>>>
>>>
>>> If I understand the question correctly, then when the signal is
>>> received, your headless app calls -synchronize on the
>>> NSUserDefaults. This assumes you don't have any shared-access
>>> contention issues.
>>
>> Yes. The app that writes the pref should call synchronize and send its signal, then the app that reads calls synchronize when it receives it. I have a pair of apps that do that; I use NSDistributedNotificationCenter and the CF equivalent CFNotificationCenterGetDistributedCenter for the signals.
>> _______________________________________________
>>
>> Cocoa-dev mailing list (email@hidden)
>>
>> 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:
>>
>> This email sent to email@hidden
>
>
--
so much for pathos
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden