I'm trying to make an iOS keyboard extension but I'm having trouble syncing/updating the data from the containing app to the extension.

As the doc states, I'm using

```
NSUserDefaults *mySharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"com.example.domain.MyShareExtension"];
[mySharedDefaults setObject:theAccountName forKey:@"lastAccountName"];

```

That works perfectly. Before launching the keyboard in the containing app, I use that, and in the keyboard's viewdidLoad I check NSUserDefault and everything works fine.

The problem is if in my containing app I update my NSUserDefaults, how can I know in my keyboard app that the NSUserDefaults have been updated.

I tried KVO, does not work.
I tried NSUserDefaultsStandard, with NSUserDidChangeNotification, does not work. NSUserDefaultsStandard does not work at all for the keyboard extension.

I was thinking of using an NSTimer in my keyboard extension, and check the NSUserDefaults every X ms. But it's overkill.

I know it's possible since apps are doing it in the AppStore. BrightKey or CoolKey change the keyboard design from the containing app.
So they definitely have a callback or something to update their data.

Thanks in advance for anyone coming up with a clean solution.