텍스트 필드 사용법
textField.keyboardType = UIKeyboardType.emailAddress // 텍스트필드의 키보드 스타일
textField.placeholder = "이메일 입력"
textField.borderStyle = .roundedRect // 텍스트필드의 선 스타일
textField.clearButtonMode = .always // 텍스트삭제 버튼
textField.returnKeyType = .go // 엔터의 형태 설정
텍스트 필드 선택 함수 정리
// 텍스트필드의 입력을 시작할때 호출 되는 메서드 ( 시작할지 말지 여부 허락 하는 것 )
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
return true
}
// 시점 -
func textFieldDidBeginEditing(_ textField: UITextField) {
print(#function)
print("유저가 텍스트필드의 입력을 시작했다.")
}
func textFieldShouldClear(_ textField: UITextField) -> Bool {
print(#function)
return true
}
// 텍스트필드 글자 내용이 입력되거나 지워질때 호출됨 (허락)
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
print(#function)
return true
}
// 텍스트필드의 엔터키가 눌러지면 다음 동작을 허락할 것인지 말것인지
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
print(#function)
return true
}
// 실제로 텍스트필드의 입력이 끝날때 호출 끝날지 말지를 허락
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
print(#function)
return true
}
// 텍스트필드의 입력이 실제 끝났을때 호출 (시점)
func textFieldDidEndEditing(_ textField: UITextField) -> Bool {
print(#function)
return true
}
화면 탭 시 종료 하는 함수
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
텍스트필드 글자 수 제한 하는 방법
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
// 입력되고 있는 글자가 숫자인 경우 입력을 허용하지 않는 논리
if Int(string) != nil { // 숫자로 변환이 된다면 nil이 아닐테니
return false
} else { // 10글자 이상 입력되는 것을 막는 코드
guard let text = textField.text else { return true }
let newLength = text.count + string.count - range.length
return newLength <= 10
}
}
텍스트필드에서 입력 완료 후 return 누르면 다음 텍스트 필드로 이동 하는 방법
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if firstTextField.text != "", secondTextField.text != "" {
firstTextField.resignFirstResponder()
// .resignFirstResponder() 첫번째 응답 자격을 해지 시키겠다라는 명령어
return true
} else if secondTextField.text != "" {
secondTextField.becomeFirstResponder()
return true
}
return false
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
firstTextField.resignFirstResponder()
secondTextField.resignFirstResponder()
}
'◽️ Programming > UIKit' 카테고리의 다른 글
UIViewController 란 무엇일까? (0) | 2024.03.28 |
---|---|
알럿(Alert) 사용법 , 비밀번호 입력값 숨김표시 on/off (0) | 2024.03.17 |
Code AutoLayout 시 .isActive 반복사용하지 않는 법 (0) | 2024.03.17 |
코드로 오토레이아웃 함수 모아 놓기 (0) | 2024.03.09 |
UIKit 사용법 (0) | 2024.03.09 |