여러 TextField에 대해 각각 글자 수 제한

15153 단어 Swift

할 수 있는 일

  • TextField 문자 수 얻기
  • 여러 TextField에 각각 다른 조건을 추가(①, ②)
  • ①, ②를 충족할 때만 활성화 버튼
  • ex) TextField Any는 4자 이상, TextField Any는 5자 이상, 10자 미만일 경우 로그인 버튼

    텍스트 필드의 문자 수 가져오기

    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)
    
            }
        }//二つの真理値がともに真である時のみボタンを活性にして色を白、そうでない時ボタンを非活性にして色を灰色にする。
    
    

    좋은 웹페이지 즐겨찾기