UITextField return키(키보드 하단 오른쪽 파란색버튼) 눌렀을 때 이벤트를 받아보자 func textFieldShouldReturn

안녕하세요~! 오늘은 UITextField Delegate 메소드중 하나인 

func textFieldShouldReturn(_ textField: UITextField) -> Bool

에 대해서 알아 보겠습니다.

 

키보드가 나오는 많은 곳에서 return(엔터키)키를 누른 후 이후 동작들을 처리하고 싶은 경우가 있습니다.

예시로 검색을 완료하고나서 리턴 키를 누르고 난 후, 팝업을 노출시키고 싶다던지

아니면 검색 결과에 대한 화면으로 이동 하고 싶은 경우 등등, 여러 이벤트들이 있을겁니다.

이때 위 함수를 채택하면 처리가 가능합니다.

 

아래 예시를 같이 보시죠

로그인 화면에서 이메일과 비밀번호를 받을 수 있는 화면 입니다.

return키에 대한 이벤트를 받기 위해 delegate를 연결 했습니다.

import UIKit

class LoginViewController: UIViewController, UITextFieldDelegate {
    @IBOutlet private var emailTextField: UITextField!
    @IBOutlet private var passwordTextField: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        emailTextField.delegate = self
        passwordTextField.delegate = self
    }
}

 

델리게이트 메서드중 textFieldShouldReturn을 구현합니다.

만약 emailTextField에 이메일을 입력 후, 리턴 키를 누르면 비밀번호 텍스트 필드 입력창으로 커서가 이동합니다.

유저는 바로 passwordTextField를 화면에서 터치하지 않아도 되는거죠

마찬가지로 passwordTextField에 비밀번호를 입력 후, 리턴키를 눌렀을때 비밀번호 유효성 검사 또는 사용자가 원하는

로직을 넣어 처리 할 수 있을 거 같습니다.

(리턴값에 대한 설명은 안에 주석에서 설명 드리게 되었습니다)

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    if textField == emailTextField {
        passwordTextField.becomeFirstResponder()
    }
    else if textField == passwordTextField {
    	/* 
        비밀번호 입력후 리턴키를 눌렀을때 다음 화면
        또는 원하는 이벤트 처리
        */
	}
    
    /*
    return값 의미:
    true: 텍스트 자동 수정 및 자동 대문자 표시
    false: 위 내용과 반대로 동작 됩니다.
    */
    return true
}

 

오늘은 여기까지입니다 읽어주셔서 감사합니다~!