반응형
아직까지 SwiftUI의 TextField에는 기본적으로 clearButton이 제공되지 않아서 직접 해당 버튼을 추가해야 합니다.
다음과 같이 ViewModifier를 이용하면 편하게 사용할 수 있습니다
struct ClearButton: ViewModifier {
@Binding var text: String
func body(content: Content) -> some View {
HStack {
content
if !text.isEmpty {
Button {
text = ""
} label: {
Image(systemName: "multiply.circle.fill")
.foregroundColor(.gray)
}
.padding(.trailing, 8)
}
}
}
}
extension View {
func clearButton(text: Binding<String>) -> some View {
modifier(ClearButton(text: text))
}
}
// How to use
TextField("", text: $text)
.clearButton(text: $text)
.padding(8)
.overlay(RoundedRectangle(cornerRadius: 8).stroke(.blue, lineWidth: 1))
.padding(.horizontal, 12)
반응형
'SwiftUI > Controls & Tips' 카테고리의 다른 글
SwiftUI 에서 Background나 Foreground 진입시 처리 (0) | 2024.01.05 |
---|---|
SegmentView (0) | 2023.12.30 |
Keyboard Height 계산해서 Publisher 하기 (0) | 2023.12.13 |
Warning "Non-constant range: argument must be an integer literal" (0) | 2023.12.07 |
Custom Environment (1) | 2023.12.05 |
foregroundColor vs tint (0) | 2023.10.28 |
SwiftUI 아이폰 회전시 Landscape, Portrait 이벤트 (0) | 2023.10.24 |
SwiftUI Color Hex 값으로 생성하기 (0) | 2023.10.08 |