How to register user defaults using NSUserDefaults without overwriting existing values?
I have an AppDelegate class with +(void)initialize method that I use to register some defaults. Here's the code that I use: + (void)initialize { NSDictionary *defaults = [NSDictionary dictionaryWithObjectsAndKeys:@"NO", @"fooKey", @"YES", @"barKey", nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:defaults]; } I also created Preferences.xib which holds couple of checkboxes ( NSButton ) that display status of preferences. They are bound to NSUserDefaultsController with same keys (fooKey and barKey in this case). Each time I launch an app and change the "defaults" they are restored