Toast

사용자의 행동에 대한 간단한 피드백을 제공하는 알림 창입니다. 화면 하단에 나타나 사용자의 현재 작업을 방해하지 않으며, 일정 시간이 지나면 자동으로 사라집니다.

@MainActor struct Toast

Overview

사용자에게 간단한 피드백이나 정보를 제공하기 위해 사용합니다. 일반, 긍정, 주의, 부정적인 상태로 표시할 수 있으며, 설정된 시간이 지나면 자동으로 사라집니다.

// 토스트 메시지 표시
@State private var toastModel: Toast.Model?

var body: some View {
    ContentView()
        .toast(
            $toastModel,
            location: .bottom(),
            duration: .short
        )
        .onAppear {
            toastModel = Toast.Model(
                .positive,
                message: "성공적으로 저장되었습니다."
            )
        }
}

Topics

Structures

struct Model

토스트 메시지의 데이터 모델을 정의하는 구조체입니다.

Initializers

init(Toast.Variant, message: String)

Toast 모델을 초기화합니다.

  • Parameters
    ParameterDescription
    variant토스트 메시지의 스타일, 생략하면 기본값으로 .normal() 적용
    message토스트에 표시할 메시지 텍스트

Instance Properties

var body: some View

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

Enumerations

enum Duration

토스트 메시지의 표시 시간을 정의하는 열거형입니다.

Enumeration Cases

case long

긴 표시 시간 (5초)

case short

짧은 표시 시간 (3초)

enum Location

토스트 메시지가 표시될 위치를 정의하는 열거형입니다.

Enumeration Cases

case bottom(offset: CGFloat)

화면 하단에 토스트 표시

  • Parameters
    ParameterDescription
    offset하단에서의 오프셋 값, 생략하면 기본값으로 .zero 적용
case top(offset: CGFloat)

화면 상단에 토스트 표시

  • Parameters
    ParameterDescription
    offset상단에서의 오프셋 값, 생략하면 기본값으로 .zero 적용
enum Variant

토스트 메시지의 시각적 스타일을 정의하는 열거형입니다.

Enumeration Cases

case cautionary

주의 메시지를 위한 주황색 경고 아이콘 스타일

case negative

오류 메시지를 위한 빨간색 경고 아이콘 스타일

case normal(Montage.Icon?, tint: Montage.Color.Semantic?)

기본 스타일의 토스트 (선택적으로 아이콘과 색상 지정 가능)

  • Parameters
    ParameterDescription
    icon표시할 아이콘, 생략하면 기본값으로 nil 적용
    tint아이콘의 색상, 생략하면 기본값으로 nil 적용
case positive

성공 메시지를 위한 녹색 체크 아이콘 스타일

Associated Extensions

extension View
func toast(Binding<Toast.Model?>, location: Toast.Location, duration: Toast.Duration) -> some View

현재 뷰에 Toast 메시지를 표시하는 modifier를 적용합니다.

  • Parameters

    ParameterDescription
    modelToast 모델을 바인딩합니다. nil이 아닌 값이 설정되면 Toast가 표시됩니다.
    locationToast가 표시될 위치, 생략하면 기본값으로 .bottom(offset: 0) 적용
    durationToast가 표시될 시간, 생략하면 기본값으로 .short 적용
  • Return Value

    Toast가 적용된 뷰

  • Discussion

    @State private var toastModel: Toast.Model?
    
    var body: some View {
        VStack {
            Button("Show Toast") {
                toastModel = Toast.Model(message: "작업이 완료되었습니다")
            }
        }
        .toast($toastModel)
    }
    

Relationships

Conforms To

Swift.Sendable

SwiftUICore.View

© 2026 Wanted Lab, Inc.