# `GSFlowSegmentedControl`

*Class*

A flow-layout segmented control that wraps across multiple lines when the available width is exhausted. The API closely mirrors NSSegmentedControl.

## Declaration

```swift
class GSFlowSegmentedControl
```

```objc
@interface GSFlowSegmentedControl : GSFlowView
```

```python
class GSFlowSegmentedControl(GSFlowView)
```

## Overview

Set `segmentCount`, then configure each segment with `setLabel:forSegment:`, `setImage:forSegment:`, etc. Attach a target/action to be notified when selection changes.

All GSFlowView layout properties (spacing, insets, alignment) apply.

## Topics

### Instance Properties

- [`GSFlowSegmentedControl.action`](/Core/GlyphsKit/GSFlowSegmentedControl/action)
- [`GSFlowSegmentedControl.segmentCount`](/Core/GlyphsKit/GSFlowSegmentedControl/segmentCount) — Number of segments. Increasing this appends new (empty) segments; decreasing it removes segments from the trailing end.
- [`GSFlowSegmentedControl.selectedSegment`](/Core/GlyphsKit/GSFlowSegmentedControl/selectedSegment) — The index of the selected segment, or –1 if no segment is selected. In `NSSegmentSwitchTrackingSelectAny` mode, reflects the most recently toggled segment. Setting this programmatically does not fire the action.
- [`GSFlowSegmentedControl.target`](/Core/GlyphsKit/GSFlowSegmentedControl/target)
- [`GSFlowSegmentedControl.trackingMode`](/Core/GlyphsKit/GSFlowSegmentedControl/trackingMode) — Controls how segments respond to clicks. Default: `NSSegmentSwitchTrackingSelectOne`.

### Instance Methods

- [`GSFlowSegmentedControl imageForSegment:`](/Core/GlyphsKit/GSFlowSegmentedControl/imageForSegment:)
- [`GSFlowSegmentedControl isEnabledForSegment:`](/Core/GlyphsKit/GSFlowSegmentedControl/isEnabledForSegment:)
- [`GSFlowSegmentedControl isSelectedForSegment:`](/Core/GlyphsKit/GSFlowSegmentedControl/isSelectedForSegment:)
- [`GSFlowSegmentedControl labelForSegment:`](/Core/GlyphsKit/GSFlowSegmentedControl/labelForSegment:)
- [`GSFlowSegmentedControl setEnabled:forSegment:`](/Core/GlyphsKit/GSFlowSegmentedControl/setEnabled:forSegment:)
- [`GSFlowSegmentedControl setImage:forSegment:`](/Core/GlyphsKit/GSFlowSegmentedControl/setImage:forSegment:)
- [`GSFlowSegmentedControl setLabel:forSegment:`](/Core/GlyphsKit/GSFlowSegmentedControl/setLabel:forSegment:)
- [`GSFlowSegmentedControl setSelected:forSegment:`](/Core/GlyphsKit/GSFlowSegmentedControl/setSelected:forSegment:) — Selects or deselects a specific segment without firing the action. In `SelectOne` mode, selecting a segment deselects all others.
- [`GSFlowSegmentedControl setWidth:forSegment:`](/Core/GlyphsKit/GSFlowSegmentedControl/setWidth:forSegment:) — Fixed pixel width for the segment. Pass 0 to let the segment size itself to fit its content (the default).
- [`GSFlowSegmentedControl widthForSegment:`](/Core/GlyphsKit/GSFlowSegmentedControl/widthForSegment:)

## Relationships

### Inherits From

- [`GSFlowView`](/Core/GlyphsKit/GSFlowView)

