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