如果阵列控制器具有多于1个元素,则启用控制

时间:2014-10-13 19:33:01

标签: objective-c cocoa cocoa-bindings nsarraycontroller

我需要在特定列表中至少包含1个元素。

理想情况下,我想将此列表的删除按钮的启用绑定到提供此列表内容的Array Controller,并禁用删除 少于2个元素的按钮

我意识到如果列表为空,我可以通过selectedObjects.@count - 来轻松禁用该按钮 但是可以使用 vanilla bindings 来表达上述条件,而无需自定义值转换器,自定义属性等。?

1 个答案:

答案 0 :(得分:1)

没试过,但可能有效:

将Enabled绑定绑定到阵列控制器,控制器键“选择”,模型键路径“self”。使用NSIsNotNil变换器,它始终为false。然后,对于No Selection,Not Applicable和Null占位符,选择No.对于Multiple Values占位符,选择Yes。为了更好地衡量,最好将阵列控制器设置为在选择多个项目时始终使用“多值”占位符。

但是,实际上,只需制作自定义变换器并使用它。