μ€λλ§μ Velog .. !
μ΅κ·Όμ 곡λΆνλ©΄μ λ Έμ μλ§ μ 리νμλλ° κ°λμ© λ²¨λ‘κ·Έμλ ν¬μ€ν νλ©΄ μ’μ κ² κ°μμ μ‘°κΈμ© μμν΄λ³΄λ €κ³ νλΉ π₯
UITextFieldDelegateλ λμ€μλ κ³μ μ°μΌ κ² κ°μμ λ Έμ μ μ 리ν΄λ λ΄μ©μΌλ‘ κ°λ¨νκ² .. :)
κ³Όμ νλ©΄μ ꡬνν λ‘κ·ΈμΈ, νμκ°μ
λ·° μ¬μ©... ^^

π UITextFieldDelegate λ?
ν€λ³΄λ μ λ ₯ λ° μ λ°μ μΈ text field νΈμ§κ³Ό κ΄λ ¨λ κΈ°λ₯λ€μ μννλ νλ‘ν μ½
π Apple Developer Documentation - UITextFieldDelegate
protocol UITextFieldDelegate
ν μ€νΈ νλλ μ€μν λ³νμ λμν΄ λΈλ¦¬κ²μ΄νΈ λ©μλλ₯Ό νΈμΆνλ€. μ¬μ©μκ° μ λ ₯ν ν μ€νΈλ₯Ό κ²μ¦νκ³ ν€λ³΄λμμ νΉμ μνΈμμ©μ μλ΅νλ©°, μ 체 νΈμ§ νλ‘μΈμ€λ₯Ό μ μ΄νλλ° μ΄ λ©μλλ€μ μ¬μ©νλ€. νΈμ§μ ν μ€νΈ νλκ° first responderκ° λκΈ° μ§μ μ μμλκ³ ν€λ³΄λ(λλ ν λΉλ input view)λ₯Ό νμνλ€. νΈμ§ κ³Όμ μ νλ¦μ λ€μκ³Ό κ°λ€.
π first responder κ° λκΈ°μ ν
μ€νΈ νλλ λΈλ¦¬κ²μ΄λμ λ©μλλ₯Ό νΈμΆνλ€ ! textFieldShouldBeginEditing(_:) : μ§μ λ ν
μ€νΈνλμμ νΈμ§μ μμν μ§ μ¬λΆ
π text fieldκ° νμ±ν λλ©΄ ν μ€νΈ μ λ ₯μ μν ν€λ³΄λ μμ± !
π‘ λ³΄ν΅ ν΄λΉ text fieldλ₯Ό ν°μΉνλ©΄ λ°λ‘ νμ±νκ° λμ§λ§, ν°μΉνκΈ° μ μ μλμΌλ‘ text field μ λ ₯μ μμνλλ‘ ν€λ³΄λλ₯Ό λμ°λ €λ©΄
textfield.becomeFirstResponder()μ μΈ!
π textFieldDidBeginEditing(_:) : μ§μ λ ν
μ€νΈ νλμμ νΈμ§μ΄ μμλ λ μλ €μ€
π text field νΈμ§ μ€μ νΈμΆλλ λ€μν delegate λ©μλλ€ μ€ textFieldShouldReturn(_:)μ μ¬μ©μκ° ν€λ³΄λμ return λ²νΌμ ν νμ λ νΈμΆλλ ν¨μλ‘ μ μ©νκ² μ¬μ© κ°λ₯ !
π textFieldShouldEndEditing(_:) : μ§μ λ ν
μ€νΈ νλμμ νΈμ§μ μ€μ§ν μ§ μ¬λΆλ₯Ό λ¬Όμ΄λ΄ !
π text field λΉνμ±ν νκ³ ν€λ³΄λ μ¨κΈ°κΈ° -> textField.resignFirstResponder() λ‘ μ§μ νΈμΆ κ°λ₯ !
π textFieldDidEndEditing(_:) : μ§μ λ ν
μ€νΈ νλμ λν νΈμ§μ΄ μ€μ§λ λ μλ¦Ό !

textFieldDidEndEditing(_:) λ©μλλ₯Ό μ¬μ©νμ¬ name,email,password ν
μ€νΈ νλκ° λͺ¨λ μ±μμ§κ³ , νΈμ§μ΄ μλ£λ κ²½μ°μλ§ λ€μ λ²νΌμ΄ νμ±ν λλλ‘ κ΅¬ννμλ€. μ¬κΈ°μ
.hasTextλ ν μ€νΈ νλμμ ν μ€νΈκ° μλμ§ μ¬λΆλ₯Ό λνλ΄λ Boolean value μ΄κ³ , ν μ€νΈκ° μμΌλ©΄ Trueλ₯Ό return !
.isEnabledλ λ²νΌμ΄ νμ±ν μνμΈμ§ μ¬λΆλ₯Ό λνλ λλΉ !
textFieldShouldReturn(_:) λ λ리μμκ² ν
μ€νΈ νλμ λν Return λ²νΌ λλ¦μ μ²λ¦¬ν μ§ μ¬λΆλ₯Ό 묻λ λ©μλ ! μ΄κ±΄ μ²μ ν
μ€νΈ νλμμ μ
λ ₯νκ³ ν€λ³΄λμμ 'next' λ²νΌμ λλ₯΄λ©΄ λ€μ μΉΈμΌλ‘ λμ΄κ°λλ‘ νκ³ λ§¨ λ§μ§λ§ μΉΈμμ 'done' λ²νΌμ λλ₯΄λ©΄ μ
λ ₯μ λ§μΉλλ‘ κ΅¬ννκΈ° μν΄μ μ¬μ©νλ€.
nameTextFieldμΈ κ²½μ° 'next' λ²νΌμ λλ μ λ λ€μ μΉΈμΈemailTextFieldμbecomeFirstResponder()λ₯Ό μ μΈν¨μΌλ‘μ¨ λ€μμΉΈμμ μ λ ₯μ λ°λ‘ μμν μ μλΉ νν π
κ·Έλ¦¬κ³ λ§μ§λ§ ν μ€νΈ νλμμresignFirstResponder()λ₯Ό ν΄μ£Όλ©΄ νμ¬ μνλ₯Ό ν¬κΈ°νκ³ ν€λ³΄λκ° λ΄λ €κ°κ² λλ€ ! πΆ
ViewController Classμ UITextFieldDelegate νλ‘ν μ½μ μ±ννκ³ , viewDidLoad()μ textField.delegate = selfλ‘ μμμ ν΄μ€λ λλ€. μΌλ¨ λλ extensionμΌλ‘ λ°λ‘ λΉΌμ ꡬνν΄μ€ !
Extensionμ ꡬ쑰체, ν΄λμ€, μ΄κ±°ν, νλ‘ν μ½μ μΆκ° ꡬνλΆ, μ μ½μ¬ν, κΈ°λ₯λ€μ μ μ ν μ μλ μ μ©ν κΈ°λ₯..^^ νλ‘ν μ½ κ΅¬νλΆλ₯Ό κΈ°λ₯λ³λ‘ λ¬Άμ΄μ νΈνκ² λ³Όμ μλ€. μ΅μ€ν
μ
μ νμ
μ μλ‘μ΄ κΈ°λ₯μ μΆκ°ν μλ μμ§λ§, κΈ°μ‘΄μ μ‘΄μ¬νλ κΈ°λ₯μ μ¬μ μν μλ μλ€κ³ νλ ... !! λ°μ λΈλ‘κ·Έμμ ν΄λμ€ μμκ³Ό μ΅μ€ν
μ
μ μ°¨μ΄λ₯Ό μ μ€λͺ
ν΄λ¬μ μ°Έκ³ νκ³ κ³΅λΆνλΉ

π Extension κ΄λ ¨ κΈ - μΌκ³°λΈλ‘κ·Έ