Skip to content

Keyboard에 의해 TextField가 가려지는 문제

S004_강현준 edited this page Nov 29, 2021 · 1 revision

문제 상황

  • TextField를 선택하면 키보드가 올라오면서 화면을 가리는 문제가 발생
  • 또한 Keyboard 바깥쪽을 선택해도 키보드가 내려가지 않아 답답한 문제가 발생

해결

  • Keyboard외의 바깥영역에 TapGestureRecognizer를 넣어줘서 어디를 클릭하든 키보드가 내려갈 수 있도록 해결
    • TapGesture를 전체 화면에 적용하게 되면 버튼이나 텍스트필드로 가야할 모든 Tap Gesture가 작동하지 않는 문제 발생
      • GestureRecognizer에는 cancelsTouchesInViews 라는 옵션이 존재해서 이것이 False가 되면 하위의 View로 TapGesture가 추가적으로 전달됨
  • 또한 키보드가 등장함에 따라 ScrollView의 Content Bottom Inset을 높여서 스크롤되는 화면의 영역을 줄임
  • 추가적으로 ScrollView가 보여지는 영역을 키보드가 눌린 View의 Frame으로 옮겨줌으로써 해결!
    • 이 때 어떤 View가 키보드를 호출했는지 알아내는 방법?
      • KeyboardWillShow Notification에는 어떤 View에서 호출됐는지 알수가 없음
      • FirstResponder의 개념을 활용해 키보드를 호출한 FirstResponder를 알아내고 그것이 TextField일 경우에만 스크롤뷰의 영역을 옮겨 보여주도록 설정

수인분당선

규칙

프로젝트

기술 특장점

데일리 스크럼

1주차
2주차
3주차
4주차
5주차
6주차

회고

회의록

1주차
2주차
3주차
4주차
5주차
6주차

멘토링

기술 공유

트러블슈팅

더보기

데모 영상

Clone this wiki locally