感谢您的帮助。
我很难通过复选框选择三个选项。更具体地说,控制偏好的三个复选框的布尔状态之间的关系。我很乐意设置单个复选框首选项,这三个选项版本中的个人首选项设置都可以。但是我似乎无法使复选框始终如一地进行交互。所以一对一,二关等等。
这是我的代码。完成这项工作的最佳方法是什么?
感谢。
保
- (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];
}
答案 0 :(得分:1)
如果我理解你,你可以尝试使用Radio Group(NSMatrix)。而不是3个单独的复选框。并使用IB中的绑定将其值选择绑定到共享的用户默认值。
在IB中绑定时,(矩阵绑定)只需勾选绑定到:共享用户默认值控制器。 并在模型密钥路径中为pref条目命名。
给你一个想法:我 您甚至可以将其他对象绑定到相同的模型密钥路径名称。即 您可以在IB中添加标签(NSTextField),并将其值绑定到共享的用户默认值控制器。并将值 模型密钥路径设置为您在广播组的模型密钥路径中为其命名的名称。
运行时,Label将显示单选按钮所在的索引号。