我試圖創建一個首選項窗口。
其中我有一些複選框樣式NSButtons。問題是,當我調用setState:
方法時,它們不會更新。我訪問standarUserDefaults
時,當窗口初始化,以獲得他們應該在的狀態,並計劃改變它們,取決於該鍵的狀態。setState不更新複選框的視圖
我知道它們實際上連接到它們的IBOutlet和IBAction因爲我已經嘗試了一些NSLog來確保這一點。
我讀一些有關更改程序不會反映在用戶界面here模型屬性的值,但我不知道如果是這樣的問題,或者坦白地說什麼他們指的是在那裏。
我宣佈像這樣在.h文件中checkbuttons:
IBOutlet NSButton *defaultDateCheck;
IBOutlet NSButton *closeOnCreationCheck;
IBOutlet NSButton *allowEmptyNumberCheck;
IBOutlet NSPopUpButton *defaultJobSetting;
init方法看起來是這樣的:
我也試過下列格式設置的複選框但沒有結果:
if ([myDefaults integerForKey:@"useDefaultDate"] == YES) {
[defaultDateCheck setState:NSOnState];
}
else {
[defaultDateCheck setState:NSOffState];
}
的連接IBAction爲方法的複選框看起來像這樣:
-(IBAction)toggleCloseOnCreation:(id)sender{
[[NSUserDefaults standardUserDefaults] setBool:([closeOnCreationCheck state] == NSOnState) forKey:@"closeOnCreation"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
乾杯,完美的作品。謝謝。 – Bjorninn 2012-04-04 16:14:22