【发布时间】:2012-01-16 21:14:14
【问题描述】:
我一直在到处寻找这个,但找不到它,它真的让我很烦。我不知道如何保存 NSPopUpButton 的当前状态,因此如果用户更改它,应用程序将在下次运行应用程序时加载该状态。我已经尝试过 NSUserDefaults,它只是在弹出按钮中添加了一个新项目,其名称非常奇怪。
【问题讨论】:
-
请显示您当前用于存储状态的代码
标签: cocoa save nspopupbutton
我一直在到处寻找这个,但找不到它,它真的让我很烦。我不知道如何保存 NSPopUpButton 的当前状态,因此如果用户更改它,应用程序将在下次运行应用程序时加载该状态。我已经尝试过 NSUserDefaults,它只是在弹出按钮中添加了一个新项目,其名称非常奇怪。
【问题讨论】:
标签: cocoa save nspopupbutton
听起来您未能为用户默认设置初始值。
例如,如果您使用“选定值”绑定将您的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 中的值正确。
【讨论】: