【问题标题】:How to save the state of an NSPopUpButton? - Cocoa如何保存 NSPopUpButton 的状态? - 可可
【发布时间】:2012-01-16 21:14:14
【问题描述】:

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

【问题讨论】:

  • 请显示您当前用于存储状态的代码

标签: cocoa save nspopupbutton


【解决方案1】:

听起来您未能为用户默认设置初始值。

例如,如果您使用“选定值”绑定将您的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 中的值正确。

【讨论】:

  • 谢谢你,这很好用,我在任何地方都找不到。我想获得一个帐户并询问是非常值得的。
猜你喜欢
  • 1970-01-01
  • 2019-10-14
  • 2015-09-14
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多