---
title: "SettingsUnifiedSegmentedRow, DroppyKit"
description: "One value out of a short list, as the native pop-up button a System Settings row carries: the current choice with the up/down chevrons, a checkmarked menu of every option, keyboard and VoiceOver behaviour courtesy of AppKit."
canonical: "https://getdroppy.app/docs/droppykit/api/settings-unified-segmented-row"
last-updated: "2026-09-09"
---

# SettingsUnifiedSegmentedRow

One value out of a short list, as the native pop-up button a System Settings row carries: the current choice with the up/down chevrons, a checkmarked menu of every option, keyboard and VoiceOver behaviour courtesy of AppKit.

`@MainActor struct SettingsUnifiedSegmentedRow<Option, Content> where Option : Hashable, Content : View`

The `cornerRadius`, `groupPosition` and `segmentHeight` parameters are kept so every already compiled droplet keeps building and running; the pop-up owns its own chrome. Exactly one option is selected at a time.

## Initializers

### init(options:cornerRadius:groupPosition:segmentHeight:accessibilityLabel:isEnabled:isSelected:action:content:)

`@MainActor init(options: [Option], cornerRadius: CGFloat = DroppyRadius.large, groupPosition: SettingsGroupPosition, segmentHeight: CGFloat = 34, accessibilityLabel: String, isEnabled: @escaping (Option) -> Bool = { _ in true }, isSelected: @escaping (Option) -> Bool, action: @escaping (Option) -> Void, @ViewBuilder content: @escaping (Option, Bool) -> Content)`

Creates a native selection row.

- Parameters:
- options: The options, leading to trailing.
- cornerRadius: Retained for compatibility; macOS owns the pop-up chrome.
- groupPosition: Retained for compatibility with existing panes.
- segmentHeight: Retained for compatibility; the pop-up sizes itself.
- accessibilityLabel: Label for the whole control.
- isEnabled: Per-option enablement.
- isSelected: Per-option selection state.
- action: Selection handler.
- content: Option label builder, receiving the option and its selected state. Use [`settingsUnifiedSegmentLabel(icon:title:isSelected:isEnabled:)`](https://getdroppy.app/docs/droppykit/api/settings-unified-segment-label-icon-title-is-selected-is-enabled).

## Properties

### body

`@MainActor var body: some View { get }`
