NSUserDefaults,One Preference有三个选项

时间:2011-01-25 03:15:56

标签: cocoa nsuserdefaults

感谢您的帮助。

我很难通过复选框选择三个选项。更具体地说,控制偏好的三个复选框的布尔状态之间的关系。我很乐意设置单个复选框首选项,这三个选项版本中的个人首选项设置都可以。但是我似乎无法使复选框始终如一地进行交互。所以一对一,二关等等。

这是我的代码。完成这项工作的最佳方法是什么?

感谢。

- (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];

}

1 个答案:

答案 0 :(得分:1)

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

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

给你一个想法:我 您甚至可以将其他对象绑定到相同的模型密钥路径名称。即 您可以在IB中添加标签(NSTextField),并将其值绑定到共享的用户默认值控制器。并将 模型密钥路径设置为您在广播组的模型密钥路径中为其命名的名称。

运行时,Label将显示单选按钮所在的索引号。