如果在NSTableView中只选择了一个项目,如何才能使NSTextField可编辑?

时间:2015-11-15 21:14:58

标签: cocoa interface-builder nstableview nstextfield

在主 - 详细信息应用程序中,我的主表视图允许多个选择。我使用NSArrayController来填充表视图。

我希望只有在主表视图中的一个项目被选中时,详细视图中的文本字段才是可编辑的。

在文本字段的绑定中禁用“允许编辑多个值选择”是不够的,因为当多个所选项目具有不同的值时,它仅禁用编辑。一旦选择了多个项目,我希望始终禁用编辑。

这是否可以在界面构建器中实现?

2 个答案:

答案 0 :(得分:2)

一种选择是将NSTextField个实例的可编辑状态绑定到selectionIndexes的{​​{1}}属性,然后使用自定义值转换器将关联的NSArrayController转换为布尔值,其值由索引集中的索引数确定。

Interface Builder 设置如下所示:

enter image description here

值变换器子类如下所示:

NSIndexSet

答案 1 :(得分:2)

我发现了

的组合
  1. 选择"始终使用多值标记"在NSArrayController
  2. enter image description here

    1. 取消选择"允许编辑多个值选择"关于NSTextField的价值绑定
    2. enter image description here

      导致我正在寻找的行为。