SearchBar나 TextField에서 터치 입력이 발생하면
키보드가 올라온다.
이번 포스팅에서는 키보드가 올라온 후에
키보드가 아닌 다른 영역을 터치 해서 키보드를 내리거나
혹은 키보드위에 ToolBar를 올리고
키보드를 내리는 BarButton을 하나 생성하여
BarButton에 Action을 넣은후
진행하는 방법에 대해 얘기해보겠다.
일단 center에 TextField를 하나 생성하겠다.
먼저 아래와 같은 코드를 작성해주자.
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?){
self.view.endEditing(true)
}
이 touchesBegan 메소드의 대해 알아보자.
View 또는 Window에서 하나 이상의 새로운 터치가 발생했음을 인식하고 처리해야 할 일이 있을때 사용 하면 되겠다.
그리고 touchesBegan 메소드안에 작성한 코드를 보겠다.
self.view.endEditing(true)
일단 TextFiled를 터치하게 되면
TextFiled가 First Responder로 되면서
키보드가 올라오게 된다.
그리고 우리는 First Responder 상태인 TextField를 물러나게 함과 동시에
키보드를 내려야 하기 때문에
view.endEditing(true)를 호출해주었다
이제 View를 터치 했을때 키보드가 내려가는걸 볼 수 있을것이다.
이번에는 ToolBar를 사용해서 구현해보겠다.
let toolbar = UIToolbar()
toolbar.sizeToFit()
let button = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(didTapButton))
toolbar.setItems([button], animated: true)
textField.inputAccessoryView = toolbar
@objc private func didTapButton() {
self.view.endEditing(true)
}
일단 ToolBar를 하나 만들고
sizeToFit으로 size를 설정해준다.
그리고 만든 BarButton을 ToolBar item에 추가해주고
마지막으로 textField의 inputAccessoryView에 ToolBar를 할당해주면
키보드 위 ToolBar에 버튼이 하나 생성된걸 볼 수 있을것이다.
그리고 Button을 터치하게되면 키보드가 내려가는걸 볼 수 있을것이다.
혹시 BarButton을 우측에 위치하고 싶다면 하단 코드를 참고하자.
let toolBar = UIToolbar.init(frame: CGRect(x: 0, y: 0, width: view.bounds.size.width, height: 44))
let button = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(didTapButton))
toolBar.setItems([UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil), button], animated: true)
textField.inputAccessoryView = toolBar
'IOS' 카테고리의 다른 글
[IOS] UserInterfaceStyle (2) (0) | 2021.01.04 |
---|---|
[IOS] UIColor Extension (0) | 2021.01.03 |
[IOS] UserInterfaceStyle (0) | 2020.12.22 |
[IOS] 이미지와 라벨을 같이 사용한 NavigationBarButtonItem (0) | 2020.12.21 |
[IOS] User Event & MainRunLoop (0) | 2020.12.19 |