2010-02-04 52 views
2

我想让我的应用程序记住下次启动应用程序时选择的NSPopUpButton。我尝试将选择索引绑定到NSUserDefaultsController,但它没有效果,它不记得下次启动的选择。我需要做什么?记住下次启动的NSPopUpButton的选择

回答

3

将选定的索引绑定到共享的NSUserDefaultsController适合我。您需要确保将控制器密钥设置为values,并将模型密钥路径设置为唯一首选项密钥字符串,例如widgetPopupSelectionIndex

此外,请确保您没有退出您的应用程序,方法是单击Xco​​de中的停止按钮,因为默认在应用程序终止过程中同步,如果您只是从Xcode中终止应用程序,则应用程序不会有机会坚持用户默认。

这是一个问题,当我在处理与用户默认相关的代码时,经常会咬我。如果您从应用程序的应用程序菜单中退出应用程序,则用户默认设置应该正确存储。

+0

这很奇怪,它仍然不适合我,你可以在这里看到,http://drp.ly/la22h – Joshua 2010-02-04 16:57:42

+2

这部电影很有趣,因为我可以看到源代码。我怀疑问题在于你绑定了选定的索引而不是弹出的值。我认为在填充弹出框的内容之前绑定已经被解析,并且因为在那时弹出框是空的,所以选择不会改变。尝试创建一个'NSArray' ivar来存储字体名称字符串列表,将其公开为属性,然后在'-init'中初始化ivar。然后,您可以将弹出窗口的**内容值**绑定到该数组属性。 – 2010-02-05 00:52:47

+0

这是我现在拥有的。我的头文件www.kttns.org/jjlm。我的实施文件www.kttns.org/mzin2。但现在它甚至不会填充它只是给我这个错误www.kttns.org/gi3nj。 – Joshua 2010-02-05 16:47:29

1

我还没有玩过绑定太多,所以我不能帮你弄清楚那里出了什么问题。我将通过在终止时将-[NSPopUpButton indexOfSelectedItem]保存到[NSUserDefaults standardUserDefaults]并在启动时恢复它来解决此问题。