如何保存NSPopUpButton的状态? - 可可

时间:2012-01-16 21:14:14

标签: cocoa save nspopupbutton

我一直在寻找这个,但却找不到它,它真的让我烦恼。我无法弄清楚如何保存NSPopUpButton的当前状态,因此如果用户更改它,应用程序将在下次运行应用程序时加载该状态。我已经尝试过NSUserDefaults,它刚刚在弹出按钮中添加了一个新项目,其名称非常奇怪。

1 个答案:

答案 0 :(得分:2)

听起来你没有为用户默认值设置初始值。

例如,如果您使用“选定值”绑定将NSPopupButton绑定到默认的“popupSelection”,那么您必须确保NSUserDefaults 总是返回其中一个NSPopupButton的“popupSelection”条目。

您可以通过在项目中包含一个plist来实现这一点,比如说“Defaults.plist”,其中包含您希望“popupSelection”的默认值(以及您希望用于其他首选项的默认值),然后在应用程序启动时加载这个plist来自你的包:

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

并使用NSUserDefaults

将这些注册为默认值
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDict];

现在,您的弹出按钮将以正确的值开头,当用户更改选择时,绑定将使NSUserDefaults中的值保持正确。