티스토리 뷰
키보드를 내리고 싶을 때
두가지 방법이 있다.
키보드의 리턴키를 눌러서 끝내기
키보드의 리턴키를 누르면 textFieldShouldReturn(_:) 델리게이트 메소드가 호출된다.
이 메소드 내에서 textField.resignFirstResponder() 메소드를 호출하면 된다.func textFieldShouldReturn(_ textField: UITextField) -> Bool { textField.resignFirstResponder() return true }
화면 다른 곳을 터치시켜서 끝내기
UIViewController의 touchesBegan(_:, with:) 메소드를 오버라이드하고 내부에서 view.endEdting(_:) 메소드를 호출한다.override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { self.view.endEditing(true) }
UITextFieldDelegate 메소드 호출 순서(Keyboard-Related Notification은 생략)
- textField가 firstResponder가 되기 전에, textFieldShouldBeginEditing(_:) 메소드를 호출한다
- textField가 firstResponder가 된다.
- textFieldDidBeginEditing(_:) 메소드를 호출한다
- 1) text가 바뀔 때 마다, textField(_:shouldChangeCharactersIn:replacementString:) 메소드를 호출한다. 이 메소드는
Bool
타입을 리턴하여 편집 유무를 확인한다. 이때 shouldChangeCharactersIn 인자는 편집될 범위를 나타내고, replacementString은 대체할 문자를 나타낸다.
주의할 점은 이 메소드가 호출된 시점에서는 아직 textField.text? 가 갱신되지 않았다는 점이다.
2) built-in인 클리어 버튼을 클릭할 때마다
textFieldShouldClear(_:) 메소드를 호출한다. 역시 Bool
을 반환한다.
3) 키보드의 return 키, 확인키, done 키 등을 유저가 누를 때 마다
textFieldShouldReturn(_:) 메소드를 호출한다. 역시 Bool
타입을 반환하며 가능 여부를 delegate에게 묻는다.
5. textField가 firstResponder를 resign하기 직전에, textFieldShouldEndEditing(_:) 메소드를 호출한다. Bool
타입을 반환한다. 현재 textField에 입력된 텍스트의 validation을 검증할 때 주로 사용한다.
6. textField가 firstResponder를 resign한다.
7. textFieldDidEndEditing(_:) 메소드를 호출한다.
출처
https://developer.apple.com/documentation/uikit/uitextfielddelegate
'iOS' 카테고리의 다른 글
UIScrollView Auto Layout 설정하기 (0) | 2021.04.17 |
---|---|
iOS 키보드 높이 확인하기 - keyboardFrameEndUserInfoKey (0) | 2021.04.12 |
UIView의 Intrinsic Content Size 설정하기 (0) | 2021.04.05 |
collectionView 셀을 터치했을 때 효과 주기 (0) | 2021.02.26 |
실제 화면 전환이 일어나는 순간이 언제인지 알아보자(= viewDidLoad() 메소드 호출 시점) (0) | 2020.12.27 |
- Total
- Today
- Yesterday
- docker tag
- 앱출시
- 도커
- Swift
- tensorflow
- 왕국타이머
- 코코아터치
- 데일리
- React Native
- 소프트웨어마에스트로11기
- 개인정보처리방침
- ios
- dockerfile
- 간단정리
- docker image
- QHD모니터
- 게이밍모니터
- 도커 이미지
- 암기빵
- 제발태그그만
- docker
- 평면모니터
- iOS #코코아터치
- 출석하냥
- ES6
- 카카오인턴십
- 한성모니터
- 사이드 프로젝트
- 144hz모니터
- docker-compose
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |