尽管已禁用,NSSegmentedControl会将可选事件分段

时间:2016-06-16 06:03:41

标签: swift macos cocoa appkit nssegmentedcontrol

我在工具栏中有一个NSSegmentedControl。它的模式设置为" 瞬间"因为这些段看起来像按钮一样工作,而不像永久选择。

启用规则:

  • 选择内容时,应启用所有3个段。
  • 如果未选择任何内容,则只应启用最后一个内容。

所以我不能禁用整个控件但只能禁用一些段。

let enabled = hasSelection()

AddDimensionSegmentedControl.contextualSegments // = (0...1)
    .forEach { (segment: Int) in
        self.setEnabled(enabled, forSegment: segment)
}

到目前为止效果很好:

disabling works

但即使不是选择模式,我仍然可以点击禁用的细分并选中它们

enter image description here

我尝试了什么:

  • 当选择更改时,再次取消选择该段
  • 当工具栏验证时,设置selectedSegment = -1

仍然看起来很残疾的选择保持不变。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

有人在聊天中指出了一些内容,这就是我找到的解决方案:你必须禁用两者代表段的NSToolbarItem和段本身。< / p>

如果您只有1 NSToolbarItem包含NSSegmentedControl而不是NSToolbarItemGroup,那么您可能不必这样做。