Macos 当整数等于OSX中的某个特定值时,如何绑定控件中的隐藏属性?

Macos 当整数等于OSX中的某个特定值时,如何绑定控件中的隐藏属性?,macos,binding,Macos,Binding,我有一个有3个细胞的放射组。当收音机组中选定的索引为1时,我想隐藏一些控件。即: [someControl setHidden: radioGroup.selectedIndex == 1]; 我有很多控件,当广播组选择更改时,它们将显示/隐藏。有些可能在所选索引等于0时显示,有些可能在等于2时显示 我希望它是通过绑定完成的,而不是使用outlet连接每个控件引用 怎么才能做到呢 至少有两种方法可以做到这一点,因为绑定hidden需要布尔值: 创建类型为BOOL的属性,并根据值比较返回是或否

我有一个有3个细胞的放射组。当收音机组中选定的索引为1时,我想隐藏一些控件。即:

[someControl setHidden: radioGroup.selectedIndex == 1];
我有很多控件,当广播组选择更改时,它们将显示/隐藏。有些可能在所选索引等于0时显示,有些可能在等于2时显示

我希望它是通过绑定完成的,而不是使用outlet连接每个控件引用


怎么才能做到呢

至少有两种方法可以做到这一点,因为绑定
hidden
需要布尔值:

  • 创建类型为
    BOOL
    的属性,并根据值比较返回是或否,然后在类中使用KVO观察原始值,并在KVO观察者内部设置布尔属性(这是确保在正确的时间更新对象所必需的)

  • 单独使用绑定,但创建一个值转换器,根据需要将每个值转换为BOOL以正确解释。有一个现有的值转换器可以将YES更改为NO,反之亦然,但是对于其他值转换,您必须自己创建这些值转换,并且没有好的方法在xib文件中对它们进行参数化

第一个解决方案可能更简单