Cocoa NSUserDefaults,一个首选项,三个选项

Cocoa NSUserDefaults,一个首选项,三个选项,cocoa,nsuserdefaults,Cocoa,Nsuserdefaults,谢谢你的帮助 我对一个通过复选框有三个选项的偏好感到很难。更具体地说,bool状态与控制首选项的三个复选框之间的关系。我可以轻松设置单个复选框的首选项,而这三个选项版本中的个人首选项设置都可以正常工作。然而,我似乎无法使复选框一致地相互作用。一开两关,等等 这是我的密码。完成这件事的最好方法是什么 谢谢 保罗 }如果我理解正确,您可以尝试使用无线组(NSMatrix)。而不是3个单独的复选框。并使用IB中的绑定将其值选择绑定到共享用户默认值 在IB中的绑定中,(矩阵绑定)只需勾选“绑定到:共享用

谢谢你的帮助

我对一个通过复选框有三个选项的偏好感到很难。更具体地说,bool状态与控制首选项的三个复选框之间的关系。我可以轻松设置单个复选框的首选项,而这三个选项版本中的个人首选项设置都可以正常工作。然而,我似乎无法使复选框一致地相互作用。一开两关,等等

这是我的密码。完成这件事的最好方法是什么

谢谢

保罗


}

如果我理解正确,您可以尝试使用无线组(NSMatrix)。而不是3个单独的复选框。并使用IB中的绑定将其值选择绑定到共享用户默认值

在IB中的绑定中,(矩阵绑定)只需勾选“绑定到:共享用户默认控制器”。 并在模型密钥路径中为pref条目指定名称

给你一个想法:我 您甚至可以将其他对象绑定到相同的模型关键点路径名称。即 您可以在IB中添加标签(NSTextField),并将其值绑定到共享用户默认控制器。并将其值Model Key Path设置为您在Model Key Path中为无线电组指定的名称

运行时,标签将显示单选按钮处于启用状态的索引号

- (BOOL)displayBankOne


 {
 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
 return [defaults boolForKey:PREFdisplayBankOne];

}

- (IBAction)bankOne:(id)sender

{


 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
 [defaults setBool:displayBankOne forKey:PREFdisplayBankOne];

 [defaults setBool:displayBankOne forKey:PREFdisplayBankOne];
 [defaults setBool:displayBankTwo forKey:PREFdisplayBankTwo];
 [defaults setBool:displayBankThree forKey:PREFdisplayBankThree];

 [bankOneFlag setState:NSOnState];

 [bankTwoFlag setState:NSOffState];
 [bankThreeFlag setState:NSOffState];