티스토리 뷰

반응형

 

 

안녕하세요! 민군입니다 ^-^ 보통 앱에서 키보드를 사용하게 될때 입력하는 입력상자가 있기 마련인데요. 이를 개발관점에서 보자면 TextField라고 합니다. 텍스트필드, 텍스트영역이라 할 수 있는데요. 그렇다면 앱의 키보드가 나올때 텍스트필드가 위치조절이 되는 것은 자동적으로 구현이 될까요?? 아닙니다. 그렇기때문에 제가 지금 포스팅을 하는 것이지요. ㅎㅎ

오늘은 iOS앱 내에서 키보드 사용 시 텍스트필드 위치를 조절할 수 있는 간단한 방법을 소개하겠습니다. 

 

 

♣︎ iOS개발, 키보드사용(편집) 시 텍스트필드 입력위치 조절방법

▶︎ 키보드 사용시 텍스트필드 위치를 조절 안하면 생기는 문제점

위와 같이 하나의 댓글입력창이 있습니다. 이제 흰 텍스트필드 영역을 터치하고 키보드입력을 하려고합니다. 한번 터치를 해볼까요?

그런데 발생하는 문제점! 띠용~ @_@...

 

 

텍스트 필드가 가려져버렸지요! 물론 이상태에서 타이핑이 불가능한 것은 아니지만, 사용자입장에서 내가 제대로 입력하고 있는지 확인하려면 직접 수동으로 스크롤링을 해야하는 불편한 상황이 생길 수 있습니다.

이를 해결할 여러방법이 있겠지만 그 중 간단한 해결방법을 소개해 보겠습니다. 하로, 노티피케이션을 사용해서 타이핑을 하려 키보드를 띄웠을때 뷰를 위로 일정수치 올려주는 것입니다.

자 소스코드로 키보드가 나올때, 사라질떄의 이벤트처리를 구현해보도록 하겠습니다. ㄱㄱ

 

 

▶︎ iOS앱 내 키보드 사용에 따른 이벤트 소스코드로 구현하기

해당 사용되는 컨트롤러뷰 내 초기화 부에 위와같은 노티피케이션 등록을 해주면 됩니다. 하나는 keybaordWilllAppear(키보드가 등장할때 호출되는 메서드), 또 하나는 keyboardWillDisappear(키보드가 사라질때 호출되는 메서드) 입니다. 각각의 메서드는 키보드 편집기가 등장, 사라지는 시점에서 호출이 될 수 있는데요.

이는 swift 내 내장되어있는 UIResponder.keyboardWillHideNotification, UIResponder.keyboardWillShowNotification 노티피케이션을 사용하면 됩니다.

위와 같이 노티피케이션(notification)을 등록했다면 이에 맞게 셀렉터 메서드를 구현해주면 됩니다.

 

 

 

  • 키보드가 등장할 시점(keyboardWillAppear)에서는 현재 사용되는 뷰의 frame.origin.y값을 -=150(뷰가 위로 일정 이동)
  • 사라질시점(keyboardWillDisappear)에는 증가했던만큼 그대로 +=150을 해줍니다.(뷰가 아래로 일정 이동)

자, 이렇게 소스코드 구현을 해보았으니 다시 실행을 해서 기능을 확인해보겠습니다.

 


 

▶︎ 키보드 입력기 사용에 따른 이벤트 구현결과

텍스트필드를 다시 터치해보시면, 원래라면 텍스트필드가 키보드에 가려졌겠지요. 하지만 설정한 뒤에는...?

 

 

위와같이 키보드를 텍스트필드가 피해서 도피(?) 하는 것을 보실 수 있습니다. 다시 키보드를 내리면 원 위치로 돌아온답니다. 정말 간단하게 위와같이 지금까지 키보드 사용시 뷰의 이동을 시키는 이벤트를 처리할 수 있었습니다. 

지금까지 swift iOS구현 중 키보드사용에 따른 이벤트처리를 하는 방법, 텍스트필드의 위치 처리하는 방법을 알아보았습니다.

더 좋은방법이나 문제점, 지적사항이 있다면 언제든 댓글로 환영합니다. 감사합니다 ^-^

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함