2017-03-10 06:50:23 +00:00
## Class: TouchBarSegmentedControl
> Create a segmented control (a button group) where one button has a selected state
2018-04-09 20:58:10 +00:00
Process: [Main ](../tutorial/application-architecture.md#main-and-renderer-processes )
2017-03-10 06:50:23 +00:00
2020-04-02 16:32:18 +00:00
### `new TouchBarSegmentedControl(options)`
2017-03-10 06:50:23 +00:00
* `options` Object
2017-11-28 17:15:15 +00:00
* `segmentStyle` String (optional) - Style of the segments:
2017-03-30 19:06:33 +00:00
* `automatic` - Default. The appearance of the segmented control is
automatically determined based on the type of window in which the control
2019-08-01 14:59:26 +00:00
is displayed and the position within the window. Maps to `NSSegmentStyleAutomatic` .
* `rounded` - The control is displayed using the rounded style. Maps to `NSSegmentStyleRounded` .
2017-03-30 19:06:33 +00:00
* `textured-rounded` - The control is displayed using the textured rounded
2019-08-01 14:59:26 +00:00
style. Maps to `NSSegmentStyleTexturedRounded` .
* `round-rect` - The control is displayed using the round rect style. Maps to `NSSegmentStyleRoundRect` .
2017-03-30 19:06:33 +00:00
* `textured-square` - The control is displayed using the textured square
2019-08-01 14:59:26 +00:00
style. Maps to `NSSegmentStyleTexturedSquare` .
* `capsule` - The control is displayed using the capsule style. Maps to `NSSegmentStyleCapsule` .
* `small-square` - The control is displayed using the small square style. Maps to `NSSegmentStyleSmallSquare` .
2017-03-30 19:06:33 +00:00
* `separated` - The segments in the control are displayed very close to each
2019-08-01 14:59:26 +00:00
other but not touching. Maps to `NSSegmentStyleSeparated` .
2017-11-28 17:15:15 +00:00
* `mode` String (optional) - The selection mode of the control:
2019-08-01 14:59:26 +00:00
* `single` - Default. One item selected at a time, selecting one deselects the previously selected item. Maps to `NSSegmentSwitchTrackingSelectOne` .
* `multiple` - Multiple items can be selected at a time. Maps to `NSSegmentSwitchTrackingSelectAny` .
* `buttons` - Make the segments act as buttons, each segment can be pressed and released but never marked as active. Maps to `NSSegmentSwitchTrackingMomentary` .
2017-05-04 21:15:48 +00:00
* `segments` [SegmentedControlSegment[]](structures/segmented-control-segment.md) - An array of segments to place in this control.
2019-08-01 14:59:26 +00:00
* `selectedIndex` Integer (optional) - The index of the currently selected segment, will update automatically with user interaction. When the mode is `multiple` it will be the last selected item.
2019-07-25 18:30:42 +00:00
* `change` Function (optional) - Called when the user selects a new segment.
2017-05-04 21:15:48 +00:00
* `selectedIndex` Integer - The index of the segment the user selected.
* `isSelected` Boolean - Whether as a result of user selection the segment is selected or not.
2017-03-10 06:50:23 +00:00
### Instance Properties
The following properties are available on instances of `TouchBarSegmentedControl` :
#### `touchBarSegmentedControl.segmentStyle`
2017-11-29 10:38:35 +00:00
A `String` representing the controls current segment style. Updating this value immediately updates the control
2017-03-10 06:50:23 +00:00
in the touch bar.
#### `touchBarSegmentedControl.segments`
2017-11-29 10:58:24 +00:00
A `SegmentedControlSegment[]` array representing the segments in this control. Updating this value immediately
2017-11-29 10:38:35 +00:00
updates the control in the touch bar. Updating deep properties inside this array **does not update the touch bar** .
2017-03-10 06:50:23 +00:00
#### `touchBarSegmentedControl.selectedIndex`
2017-11-29 10:58:24 +00:00
An `Integer` representing the currently selected segment. Changing this value immediately updates the control
2017-11-29 10:38:35 +00:00
in the touch bar. User interaction with the touch bar will update this value automatically.
2020-07-16 18:37:38 +00:00
#### `touchBarSegmentedControl.mode`
A `String` representing the current selection mode of the control. Can be `single` , `multiple` or `buttons` .