관리 메뉴

사과하는 제라스

[Swift 기능] 입력창 외부를 클릭 시 키보드가 내려가는 기능 구현 본문

제라스의 iOS 공부/Swift 기능

[Swift 기능] 입력창 외부를 클릭 시 키보드가 내려가는 기능 구현

Xerath(제라스) 2023. 9. 17. 19:03

목차

    728x90
    반응형

    React Native에서는 TouchableWithoutFeedback란게 있다.

    TextInput을 감싸주면 TextInput 외부를 클릭 시의 동작에 대한 설정이 가능했다.

    이곳에 Keyboard.dismiss 함수를 적어두면 키보드가 내려가도록 할 수 있다.

     

    그렇다면 Swift에서는 이것을 어떻게 구현할까?

     

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

    이렇게 구현하면 된다.

    이러면 endEditing으로 self(ViewController)의 view 내에서의 편집이 끝나도록(endEditing(true)) 하기 때문에 가능한 거다.

     

    공식문서를 통해 확인하면 touchesBegan은

    view나 window에서 한개 이상의 새로운 터치가 발생할 때마다 실행되는 함수라고 한다.

     

    이외 다른 비슷한 함수들도 함께 알아보면 다음과 같다.

    //터치가 시작될 때 불려지는 함수
    touchesBegan
    
    //터치 이벤트가 바뀔 때 불려지는 함수
    touchesMoved
    
    //손가락이 view나 window에서 떨어질 때 불려지는 함수
    touchesEnded
    
    //alert과 같이 시스템 이벤트로 터치의 흐름이 취소될 때 불려지는 함수
    touchesCancelled
    728x90
    반응형