티스토리 뷰
안녕하세요! 민군입니다 ^-^ 보통 앱에서 키보드를 사용하게 될때 입력하는 입력상자가 있기 마련인데요. 이를 개발관점에서 보자면 TextField라고 합니다. 텍스트필드, 텍스트영역이라 할 수 있는데요. 그렇다면 앱의 키보드가 나올때 텍스트필드가 위치조절이 되는 것은 자동적으로 구현이 될까요?? 아닙니다. 그렇기때문에 제가 지금 포스팅을 하는 것이지요. ㅎㅎ
오늘은 iOS앱 내에서 키보드 사용 시 텍스트필드 위치를 조절할 수 있는 간단한 방법을 소개하겠습니다.
♣︎ iOS개발, 키보드사용(편집) 시 텍스트필드 입력위치 조절방법
▶︎ 키보드 사용시 텍스트필드 위치를 조절 안하면 생기는 문제점
위와 같이 하나의 댓글입력창이 있습니다. 이제 흰 텍스트필드 영역을 터치하고 키보드입력을 하려고합니다. 한번 터치를 해볼까요?
그런데 발생하는 문제점! 띠용~ @_@...
텍스트 필드가 가려져버렸지요! 물론 이상태에서 타이핑이 불가능한 것은 아니지만, 사용자입장에서 내가 제대로 입력하고 있는지 확인하려면 직접 수동으로 스크롤링을 해야하는 불편한 상황이 생길 수 있습니다.
이를 해결할 여러방법이 있겠지만 그 중 간단한 해결방법을 소개해 보겠습니다. 하로, 노티피케이션을 사용해서 타이핑을 하려 키보드를 띄웠을때 뷰를 위로 일정수치 올려주는 것입니다.
자 소스코드로 키보드가 나올때, 사라질떄의 이벤트처리를 구현해보도록 하겠습니다. ㄱㄱ
▶︎ iOS앱 내 키보드 사용에 따른 이벤트 소스코드로 구현하기
해당 사용되는 컨트롤러뷰 내 초기화 부에 위와같은 노티피케이션 등록을 해주면 됩니다. 하나는 keybaordWilllAppear(키보드가 등장할때 호출되는 메서드), 또 하나는 keyboardWillDisappear(키보드가 사라질때 호출되는 메서드) 입니다. 각각의 메서드는 키보드 편집기가 등장, 사라지는 시점에서 호출이 될 수 있는데요.
이는 swift 내 내장되어있는 UIResponder.keyboardWillHideNotification, UIResponder.keyboardWillShowNotification 노티피케이션을 사용하면 됩니다.
위와 같이 노티피케이션(notification)을 등록했다면 이에 맞게 셀렉터 메서드를 구현해주면 됩니다.
- 키보드가 등장할 시점(keyboardWillAppear)에서는 현재 사용되는 뷰의 frame.origin.y값을 -=150(뷰가 위로 일정 이동)
- 사라질시점(keyboardWillDisappear)에는 증가했던만큼 그대로 +=150을 해줍니다.(뷰가 아래로 일정 이동)
자, 이렇게 소스코드 구현을 해보았으니 다시 실행을 해서 기능을 확인해보겠습니다.
▶︎ 키보드 입력기 사용에 따른 이벤트 구현결과
텍스트필드를 다시 터치해보시면, 원래라면 텍스트필드가 키보드에 가려졌겠지요. 하지만 설정한 뒤에는...?
위와같이 키보드를 텍스트필드가 피해서 도피(?) 하는 것을 보실 수 있습니다. 다시 키보드를 내리면 원 위치로 돌아온답니다. 정말 간단하게 위와같이 지금까지 키보드 사용시 뷰의 이동을 시키는 이벤트를 처리할 수 있었습니다.
지금까지 swift iOS구현 중 키보드사용에 따른 이벤트처리를 하는 방법, 텍스트필드의 위치 처리하는 방법을 알아보았습니다.
더 좋은방법이나 문제점, 지적사항이 있다면 언제든 댓글로 환영합니다. 감사합니다 ^-^
'iOS 개발' 카테고리의 다른 글
Xcode Assistant Editor 에디터 기호따라 분리하기 (0) | 2019.07.02 |
---|---|
iOS 계산기앱 다수 UIButton 버튼 중복기능 일괄 처리하기 (0) | 2019.06.22 |
iOS앱 올코드 구현 중 내용맞게 테이블뷰 셀 높이 자동조절하기 (0) | 2019.06.18 |
iOS Notification 노티 사용 시 주의할점(중복노티 방지) (0) | 2019.06.03 |
iOS앱 실행 시 UIApplication기능으로 권한설정 유도하기 (0) | 2019.05.02 |
- Total
- Today
- Yesterday
- 백준알고리즘
- swift알고리즘
- swift reduce
- swift 문자열
- 프로그래머스
- uikit
- SwiftUI
- Protocol
- 프로토콜
- swift string
- swift언어
- 스위프트
- 프로그래머스swift
- 백준swift
- swift문제
- 김프매매
- Collection
- createML
- Swift 알고리즘
- ios
- 알고리즘
- swift
- 자연어처리
- 컬렉션
- publisher
- swift 기초
- CoreML
- 부스트코스
- 개발자문서
- 알고리즘문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |