티스토리 뷰
728x90
앱에서 키보드를 띄운다음 키보드 외 화면을 누르면 키보드가 내려가는 기능을 알아 볼건데요.
너무 당연히 될 줄 알았던 기능이었지만,
이것도 따로 구현이 필요합니다.
그래도 생각보다 꽤 간단하니 바로 정리해 봅시다!
+추가 (22.02.28)
같이 블로깅 스터디 하시는 분이 더 쉬운방법을 공유해 주셨어요 !!
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(true)
}
위의 짧은 코드를 추가하면 끝!!
먼저 tap을 감지하는 메소드인
UITapGestureRecognizer(target:, action:)
를 사용해줍니다.
override func viewDidLoad() {
super.viewDidLoad()
hideKeyboard()
}
func hideKeyboard() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self,
action: #selector(dismissKeyboard))
view.addGestureRecognizer(tap)
// 또는 아래처럼 작성하셔도 됩니다.
// view.addGestureRecognizer(UITapGestureRecognizer(target: self,
// action: #selector(dismissKeyboard)))
}
@objc func dismissKeyboard() {
view.endEditing(true)
}
자 끝이에요! 생각보다 간단하죠!?
만약 모든 UIViewController에 사용하고 싶다면
Extension에 따로 만들어 놓고 메소드 호출만 하는 방법도 있습니다.
// Extension.Swift
import UIKit
extension UIViewController {
func hideKeyboardWhenTappedAround() {
let tap = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
}
@objc func dismissKeyboard() {
view.endEditing(true)
}
}
아래는 최종 코드 입니다. (더보기 클릭)
그동안 앱을 사용해오면서 당연하다고 느꼈던것들이
하나하나 개발자의 손으로 만들어 지고 있었던걸 다시 느끼게 되는 계기 였던것 같습니다.
요즘 UITextField 부분을 작업해보는중인데 소소하지만 블로깅할게 많아질것 같네요 !!
이해하는데 도움이 됐어요
728x90
'iOS' 카테고리의 다른 글
[Swift] 프로퍼티 - Property Wrapper (3/3) (0) | 2022.03.04 |
---|---|
[Swift] 프로퍼티 (Property) (1/3) (0) | 2022.03.02 |
[iOS] 생명주기 메소드 AppDelegate & SceneDelegate (Lifecycle method) (0) | 2022.02.25 |
[iOS] 로컬 푸시 알림 (Local push notification) (0) | 2022.02.19 |
구조체(Struct)/ 클래스 (Class) (0) | 2022.02.16 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- swift property
- Swift final
- swift reduce
- Swift Leetcode
- Swift RIBs
- Combine: Asynchronous Programming with Swift
- RIBs tutorial
- Swift ModernRIBs
- removeLast()
- swift 고차함수
- Swift 내림차순
- Swift 프로그래머스
- 원티드 프리온보딩
- Swift inout
- ios
- swift programmers
- Class
- swift (programmers)
- 2023년 회고
- RTCCameraVideoCapturer
- Swift joined
- Swift 프로퍼티
- Swift
- CS 네트워크
- Swift joined()
- swift protocol
- Swift init
- iOS error
- Swift 알고리즘
- Swift Error Handling
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함