Select

사용자가 미리 정의된 옵션 목록 중 하나 혹은 하나 이상의 항목을 선택할 수 있는 입력 요소입니다.

@MainActor struct Select

Overview

@State private var items = [
    .init(text: "Option 1"),
    .init(text: "Option 2"),
    .init(text: "Option 3")
]

Select(
    variant: .single(selectionType: .checkmark),
    items: $items
)
.placeholder("선택하세요")

Topics

Structures

struct Item

Select 컴포넌트에서 사용하는 항목 모델을 정의합니다.

Initializers

init(text: String, icon: Icon?, isNegative: Bool, isSelected: Bool)

아이템 초기화

  • Parameters
    ParameterDescription
    text아이템 텍스트
    icon아이템 아이콘, 생략하면 기본값으로 nil 적용
    isNegative부정적 상태 여부, 생략하면 기본값으로 false 적용
    isSelected선택 여부, 생략하면 기본값으로 false 적용

Instance Properties

let icon: Icon?

아이템의 아이콘

let isNegative: Bool

부정적 상태 여부 (오류나 경고를 나타낼 때 사용)

var isSelected: Bool

항목의 선택 여부

let text: String

아이템 텍스트 내용

Initializers

init(menuPresented: Binding<Bool>?, variant: Variant, items: Binding<[Item]>, onTapItem: ((Select.Item) -> Void)?)

Select 컴포넌트 초기화

  • Parameters
    ParameterDescription
    menuPresented메뉴 표시 상태 바인딩, 생략하면 기본값으로 nil 적용
    variant컴포넌트의 시각적/기능적 변형
    items선택 가능한 항목 배열 (바인딩)
    onTapItem항목 선택 시 호출되는 클로저, 생략하면 기본값으로 nil 적용

Instance Properties

var body: some View

뷰의 내용과 동작을 정의합니다.

Instance Methods

func description(String) -> Select

설명을 추가합니다.

  • Parameters

    ParameterDescription
    description표시할 설명 텍스트
  • Return Value

    수정된 Select 인스턴스

func disable(Bool) -> Select

활성화 여부를 조정합니다.

  • Parameters

    ParameterDescription
    disable비활성화 여부, 생략하면 기본값으로 true 적용
  • Return Value

    수정된 Select 인스턴스

func heading(String) -> Select

제목을 추가합니다.

  • Parameters

    ParameterDescription
    heading표시할 제목 텍스트
  • Return Value

    수정된 Select 인스턴스

func leadingContent(LeadingContent?) -> Select

왼쪽 컨텐츠를 추가합니다.

  • Parameters

    ParameterDescription
    content표시할 선행 콘텐츠
  • Return Value

    수정된 Select 인스턴스

func menuResize(BottomSheet.Resize) -> Select

메뉴의 높이 detent를 지정합니다.

  • Parameters

    ParameterDescription
    menuResize메뉴 크기 조정 방식
  • Return Value

    수정된 Select 인스턴스

func negative(Bool) -> Select

negative 상태 여부를 조정합니다.

  • Parameters

    ParameterDescription
    negative부정적 상태 여부, 생략하면 기본값으로 true 적용
  • Return Value

    수정된 Select 인스턴스

func placeholder(String) -> Select

선택된 항목들이 없는 경우 placeholder를 표시합니다.

  • Parameters

    ParameterDescription
    placeholder표시할 플레이스홀더 텍스트
  • Return Value

    수정된 Select 인스턴스

func requiredBadge(Bool) -> Select

필수 표시 노출 여부를 조정합니다.

  • Parameters

    ParameterDescription
    requiredBadge필수 표시 여부, 생략하면 기본값으로 true 적용
  • Return Value

    수정된 Select 인스턴스

func shadowBackgroundColor(SwiftUI.Color) -> Select

shadow 배경색을 조정합니다.

  • Parameters

    ParameterDescription
    shadowBackgroundColor설정할 배경색
  • Return Value

    수정된 Select 인스턴스

Enumerations

enum LeadingContent

왼쪽에 표시될 컨텐트 타입입니다.

Enumeration Cases

case custom(() -> any View)

사용자 정의 뷰 표시

  • Parameters
    ParameterDescription
    content사용자 정의 뷰를 반환하는 클로저
case icon(Icon)

아이콘 표시

  • Parameters
    ParameterDescription
    icon표시할 아이콘
case iconButton(IconButton)

아이콘 버튼 표시

  • Parameters
    ParameterDescription
    iconButton표시할 아이콘 버튼
enum Render

variant가 multiple일 때 컴포넌트에 표시될 내용의 형태를 결정하는 열거형입니다.

Enumeration Cases

case chip

선택된 항목을 칩(chip) 형태로 표시

case text

선택된 항목 텍스트만 표시

enum SingleSelectionType

variant가 single일 때 아이템 선택 창에 아이템이 표시되는 방식을 결정하는 열거형입니다.

Enumeration Cases

case checkmark

체크마크로 선택 표시

case radio

라디오 버튼으로 선택 표시

enum Variant

선택 모드를 나타내는 열거형입니다.

Enumeration Cases

case multiple(render: Render, overflow: Bool, menuPrimaryButtonTitle: String)

다중 선택 모드

  • Parameters
    ParameterDescription
    render선택된 항목 표시 방식, 생략하면 기본값으로 .text 적용
    overflow선택된 항목이 여러 줄로 표시되는지 여부, 생략하면 기본값으로 false 적용
    menuPrimaryButtonTitle확인 버튼 제목
case single(selectionType: SingleSelectionType, menuPrimaryButtonTitle: String?)

단일 선택 모드

  • Parameters
    ParameterDescription
    selectionType선택 표시 방식, 생략하면 기본값으로 .radio 적용
    menuPrimaryButtonTitle확인 버튼 제목, 생략하면 기본값으로 nil 적용 (버튼 표시 안 함)

Relationships

Conforms To

Swift.Sendable

SwiftUICore.View

© 2026 Wanted Lab, Inc.