๐Ÿ“–์ˆซ์ž ์ž…๋ ฅ ๊ธˆ์ง€

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
ย  ย  if Int(string) != nil || string == "" {
ย  ย  ย  ย  return false
ย  ย  }
ย  ย  
ย  ย  return true
}

๐Ÿ“–๊ธ€์ž์ˆ˜ ์ œํ•œ

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {    
    if (textField.text?.count)! + string.count > 10 {
        return false
    }
    
    return true
}

๐Ÿ“–return key ๋ˆ„๋ฅผ ๋•Œ ๋‹ค์Œ ํ…์ŠคํŠธ ํ•„๋“œ๋กœ ์ด๋™

// ์ด๊ฑฐ ์ฝ”๋“œ ๋ฌด์Šจ ํŒŒ์ผ์— ์žˆ๋”๋ผ,,,,,?

๐Ÿ“–place holder ๋™์ ์œผ๋กœ ์›€์ง์ด๊ฒŒ ๋งŒ๋“ค๊ธฐ in Code

// MARK: - ํ…์ŠคํŠธํ•„๋“œ ํŽธ์ง‘ ์‹œ์ž‘ํ• ๋•Œ์˜ ์„ค์ • - ๋ฌธ๊ตฌ๊ฐ€ ์œ„๋กœ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ํฌ๊ธฐ ์ž‘์•„์ง€๊ณ , ์˜คํ† ๋ ˆ์ด์•„์›ƒ ์—…๋ฐ์ดํŠธ
    func textFieldDidBeginEditing(_ textField: UITextField) {
        
        if textField == emailTextField {
            emailTextFieldView.backgroundColor = #colorLiteral(red: 0.2972877622, green: 0.2973434925, blue: 0.297280401, alpha: 1)
            emailInfoLabel.font = UIFont.systemFont(ofSize: 11)
            // ์˜คํ† ๋ ˆ์ด์•„์›ƒ ์—…๋ฐ์ดํŠธ
            emailInfoLabelCenterYConstraint.constant = -13
        }
        
        if textField == passwordTextField {
            passwordTextFieldView.backgroundColor = #colorLiteral(red: 0.2972877622, green: 0.2973434925, blue: 0.297280401, alpha: 1)
            passwordInfoLabel.font = UIFont.systemFont(ofSize: 11)
            // ์˜คํ† ๋ ˆ์ด์•„์›ƒ ์—…๋ฐ์ดํŠธ
            passwordInfoLabelCenterYConstraint.constant = -13
        }
        
        // ์‹ค์ œ ๋ ˆ์ด์•„์›ƒ ๋ณ€๊ฒฝ์€ ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ์ค„๊บผ์•ผ
        UIView.animate(withDuration: 0.3) {
            self.stackView.layoutIfNeeded()
        }
    }