여러 TextField에 대해 각각 글자 수 제한
15153 단어 Swift
할 수 있는 일
텍스트 필드의 문자 수 가져오기
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let textLength = (textField.text! as NSString).replacingCharacters(in: range, with: string).count
print("テキストが入力された\(textLength)")//文字数を表示
return true
}
텍스트 필드에 문자를 입력할 때마다 호출됩니다.여러 텍스트 필드 작업
여러 TextField를 처리하려면 TextField에서 tag를 설정합니다.
tag를 설정하면 위
func textField()
중에서 유일하게 TextField를 확인할 수 있습니다.//さっきの続き
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let textLength = (textField.text! as NSString).replacingCharacters(in: range, with: string).count
switch textField.tag {
case 0:
print("TextFieldアが押された\(textLength)")
case 1:
print("TextFieldイが押された\(textLength)")
default:
break
}
}
TextField에 각각 다른 조건 추가
우리는 텍스트 필드에 네 개 이상의 문자를 포함하고, 텍스트 필드에 다섯 개 이상의 문자를 포함하거나 열 개 이하의 문자를 포함할 때만 로그인 단추를 사용할 수 있습니다.
이때 두 조건이 각각 진실일 때만 버튼의 활성
isEnabled
을 진실로 결정해야 한다.이 때 진리 값이 복잡하다는 것을 발견할 수 있기 때문에 함수를 만들어 보겠습니다.
private func checkButton() {
if TextFieldABool && TextFieldBBool {
loginButton.isEnabled = true
loginButton.setTitleColor(UIColor.black, for: .normal)
} else {
loginButton.isEnabled = false
loginButton.setTitleColor(UIColor.gray, for: .normal)
}
}//二つの真理値がともに真である時のみボタンを活性にして色を白、そうでない時ボタンを非活性にして色を灰色にする。
이 함수를 호출할 때마다 두 개의 실제 값의 상태에 따라 처리됩니다.//さっきの続き
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let textLength = (textField.text! as NSString).replacingCharacters(in: range, with: string).count
switch textField.tag {
case 0:
print("TextFieldアが押された\(textLength)")
if textLength >= 4 {
TextFieldABool = true
} else {
TextFieldABool = false
}
case 1:
print("TextFieldイが押された\(textLength)")
if (textLength >= 5) && (textLength < 10) {
TextFieldABool = true
} else {
TextFieldABool = false
}
default:
break
}
}
이로써 여러 TextField에 각각 다른 조건을 적용할 때의 처리를 기술할 수 있다.소스 코드
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let textLength = (textField.text! as NSString).replacingCharacters(in: range, with: string).count
switch textField.tag {
case 0:
print("TextFieldアが押された\(textLength)")
if textLength >= 4 {
TextFieldABool = true
} else {
TextFieldABool = false
}
case 1:
print("TextFieldイが押された\(textLength)")
if (textLength >= 5) && (textLength < 10) {
TextFieldABool = true
} else {
TextFieldABool = false
}
default:
break
}
}
private func checkButton() {
if TextFieldABool && TextFieldBBool {
loginButton.isEnabled = true
loginButton.setTitleColor(UIColor.black, for: .normal)
} else {
loginButton.isEnabled = false
loginButton.setTitleColor(UIColor.gray, for: .normal)
}
}//二つの真理値がともに真である時のみボタンを活性にして色を白、そうでない時ボタンを非活性にして色を灰色にする。
Reference
이 문제에 관하여(여러 TextField에 대해 각각 글자 수 제한), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Hyperbolic_____/items/e1c8d907e89d11a64383텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)