0

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

4

1 回答 1

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当用户更改选择时绑定将保持该值正确。

于 2012-01-16T21:46:55.553 回答