본문 바로가기

iOS

[Swift] Keyboard 제어 ( 터치시 키보드 내리기, 키보드 올리기 ..)

키보드 제어


안녕하세요 치캣입니다.

앱을 개발을 하다보면 키보드를 제어 할 일이 생기는데요.

오늘은 키보드를 어떻게 제어하는지 알아 보겠습니다.

우선 먼저 클래스에서 텍스트필드의 델리게이트를 채택해주세요.

클래스의 이름은 편하신대로 하시면 됩니다.

특정 텍스트 필드에 포커스 시키기


현재 뷰에 처음 들어왔을때 사용자에게 바로 입력을 유도하도록 하고 싶을때

사용하면 좋은 포커스 기능입니다.

코드

 


override func viewWillAppear(_ animated: Bool) {
        self.textField.becomeFirstResponder()
    }

 

먼저 textfield를 선언해주시고 델리게이트를 연결하신 후에 진행해주세요 

화면이 전환될때마다 키보드를 올려줘야하기 때문에 

viewWillAppear 에 코드를 적어주었습니다.

 

 

화면 터치시 키보드 내리기


사용자가 입력을 마치면 키보드를 내려주어야겠죠? 

 

 

코드


override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.textField.resignFirstResponder()
    }

 

UIViewController의 터치 관련 메소드 중에 touchesBegan 이라는 메소드가 있습니다.

이 메소드는 뷰 컨트롤러에 터치가 시작되는 시점에 동작하기 때문에 

이 메소드 안에 저 코드를 넣어주시면 됩니다. 

 

return 키를 눌렀을 때 키보드 제어


모바일에서 회원가입을 해보셨나요? 

회원가입을 할때는 아이디나 비밀번호 뿐만 아니라 입력해야 할 정보들이 많아

사용자 입장에서는 귀찮은 점이 많습니다.

 

그럴때 리턴을 눌렀을 때 키보드 제어를 통해 사용자들의 편의성을 높여줄 수 있습니다.

리턴을 누르면 다음 입력란으로 이동한다던지, 

다음 페이지로 자동으로 넘어가게 할 수도 있습니다. 

 

 

코드


func textFieldShouldReturn(_ textField: UITextField) -> Bool {

        self.textField.resignFirstResponder()
        self.dismiss(animated: true, completion: nil)
        return true
    }

이 메소드는 텍스트필드델리게이트 프로토콜을 채택하면 사용가능한 함수입니다. 

return 키를 눌렀을때 동작을 하는 함수인데 여기서

키보드를 내리는 것과 화면 전환을 동시에 해주었습니다.

 

 


 

오늘은 키보드를 제어해서 사용자 편의성을 올릴 수 있는 방법을 공부 해보았습니다. 

틀린점이나 오타가 있다면 알려주세요^^