2010-02-04 53 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]並在啓動時恢復它來解決此問題。