1

NSSegmentedControl在工具栏中有一个。它的模式设置为“瞬时”,因为这些片段应该看起来像按钮一样工作,而不是像永久选择一样。

启用规则:

  • 选择内容后,应启用所有 3 个段。
  • 未选择任何内容时,应仅启用最后一项。

所以我不能禁用整个控件,只能禁用某些部分。

let enabled = hasSelection()

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

到目前为止效果很好:

禁用作品

但是我仍然可以单击禁用的段并选择它们,即使那不是选择模式

在此处输入图像描述

我尝试了什么:

  • when the selection changes, deselect the segment again
  • 当工具栏生效时,设置selectedSegment = -1

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

4

1 回答 1

0

有人在聊天中指出了一些问题,这是我找到的解决方案:您必须同时禁用代表细分NSToolbarItem和细分本身的 。

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

于 2016-06-16T15:35:54.307 回答