Question

J'ai été à la recherche partout pour cela et n'a pas été capable de le trouver et sa m'énerve vraiment.Je ne peux pas comprendre comment économiser de l'état actuel d'une NSPopUpButton, de sorte que si un utilisateur change, l'application se charge que de l'état en suivant l'application.J'ai essayé NSUserDefaults et c'est juste l'ajout d'un nouvel élément dans la fenêtre pop-up bouton qui a un nom bizarre.

Était-ce utile?

La solution

Il semble que vous avez omis de définir une valeur initiale pour l'utilisateur par défaut.

Par exemple, si vous liez votre NSPopupButton à l'aide de la "Valeur Sélectionnée" liaison à un défaut "popupSelection", alors vous devez vous assurer que NSUserDefaults toujours retourne l'une des NSPopupButton's d'entrées pour "popupSelection".

Vous y parvenir en incluant un fichier plist de votre projet, de dire "par Défaut.plist", qui contient la valeur par défaut que vous souhaitez pour "popupSelection" (et les valeurs par défaut que vous souhaitez pour vos autres préférences), puis au démarrage de l'application charger ce fichier plist de votre bundle:

NSString *defaultsPath = [[NSBundle mainBundle] pathForResource:@"Defaults" ofType:@"plist"];
NSDictionary *defaultsDict = [NSDictionary dictionaryWithContentsOfFile:defaultsPath]];

et enregistrer comme réglages par défaut avec NSUserDefaults:

[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDict];

Maintenant, votre bouton popup va commencer avec une valeur correcte, et la liaison de conserver la valeur dans NSUserDefaults correcte lorsque l'utilisateur modifie la sélection.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top