이번 포스팅에서는 비밀번호 입력 필드를 만들어보겠습니다. 단순한 비밀번호 필드가 아니라 웹에서 흔히 보는 비밀번호 숨기기를 토글할 수 있는 기능을 구현해보도록 하겠습니다.
비밀번호 입력 필드를 만들기 위해서는 사용자가 입력한 값을 보이지 않게 만들어주는 특수한 TextField인 SecureField를 사용해야 합니다.
SecureField를 사용하면 아래 캡쳐처럼 입력값이 전부 가려져서 나오는 것을 볼 수 있습니다.
import SwiftUI
struct ContentView: View {
@State var password: String = ""
var body: some View {
SecureField("비밀번호", text: $password)
.textFieldStyle(.roundedBorder)
.padding()
}
}
import SwiftUI
struct ContentView: View {
// 1. 변수 선언
@State var isSecure: Bool = true
@State var password: String = ""
var body: some View {
// 2. ZStack: trailing으로
ZStack(alignment: .trailing) {
// 3. SecureField와 TextField
if isSecure {
SecureField("비밀번호", text: $password)
.textFieldStyle(.roundedBorder)
.padding()
} else {
TextField("비밀번호", text: $password)
.textFieldStyle(.roundedBorder)
.padding()
}
// 4. isSecure를 토글하는 버튼
Button {
isSecure.toggle()
} label: {
Image(systemName: isSecure ? "eye.slash" : "eye")
}
.padding(.trailing, 20)
}
}
}