我试图创建一个首选项窗口。
其中我有一些复选框样式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