1

NSSegmentedControlツールバーに があります。セグメントは永続的な選択ではなく、ボタンのように機能するように見えるため、モードは「一時的」に設定されています。

有効にするためのルール:

  • コンテンツを選択すると、3 つのセグメントすべてが有効になります。
  • コンテンツが選択されていない場合は、最後のコンテンツのみを有効にする必要があります。

したがって、コントロール全体を無効にすることはできませんが、一部のセグメントのみを無効にします。

let enabled = hasSelection()

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

それはこれまでのところ非常にうまく機能します:

機能を無効にする

ただし、無効なセグメントをクリックして、選択モードでなくても選択することはできます

ここに画像の説明を入力

私が試したこと:

  • 選択が変更されたら、セグメントを再度選択解除します
  • ツールバーが検証されたら、設定しますselectedSegment = -1

それでも、無効に見える選択はそのままです。何か案は?

4

1 に答える 1

0

誰かがチャットで何かを指摘しました。私が見つけた解決策は次のとおりです。セグメントを表す とセグメント自体の両方を無効にする必要があります。NSToolbarItem

a の代わりにNSToolbarItemthe を含むものが 1 つしかない場合は、おそらくそれを行う必要はありません。NSSegmentedControlNSToolbarItemGroup

于 2016-06-16T15:35:54.307 に答える