본문 바로가기
🍎iOS프로그래밍/오늘의 공부

Swift - 아이폰 키보드를 내리는 여러 방법

by 둥둥동동# 2022. 10. 4.
728x90

 

아이폰 키보드를 내려보자

 

프로젝트에 텍스트필드만 추가해보면 키보드가 내려가지 않는것을 알 수 있습니다

return 버튼을 눌렀을 때 자동으로 닫히게 만들수도 있고 Done. 버튼을 만들어 사용자가 원할 때 닫히게 할 수도 있습니다

그 외에도 다양한 방법이 있는데 오늘은 제가 배운 방법에 대해 포스팅하겠습니다

 

 

return버튼을 눌러 키보드 내리기

UITextFieldDelegate의  textFieldShouldReturn() 메서드가 호출될 때 키보드를 내리게 할 수 있습니다

 

코드는 아래와 같습니다

 

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    
    SearchRecipe(keyword: searchField.text)
    
    searchField.resignFirstResponder()
    
    return true
}
cs

 

이 방법은  return버튼이 없는 키보드에는 적용할 수 없는 문제점이 있습니다 

 

 

 

Done 버튼 만들기

 

숫자패드처럼 reutrn버튼이 없는 경우에도 사용할 수 있습니다

 

 

UIToolbar를 만들어 버튼이 눌리면 키보드를 내리는 방법입니다

setupTextFields()메서드를 ViewDidLoad()에 넣으면 특정 텍스트뷰가 눌릴때 나타나는 키보드에는 Done툴바가 생성됩니다

func setupTextFields() {
    let toolbar = UIToolbar()
    let flexSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace,
                                    target: nil, action: nil)
    let doneButton = UIBarButtonItem(title: "Done", style: .done,
                                     target: self, action: #selector(DismissKeyboard))
    
    toolbar.setItems([flexSpace, doneButton], animated: true)
    toolbar.sizeToFit()
    
   textField.inputAccessoryView = toolbar
}
 
@objc func DismissKeyboard() {
    view.endEditing(true)
}
cs

 

 

 

 

키보드 내리는 한줄 코드

 

사실 키보드를 내리는 코드는 딱 한줄이면 됩니다

view.endEditing(true)
cs

이 코드 한줄이면 어떤 작업 중이더라도 키보드를 바로 내리게 할 수 있습니다

 

공식문서는 아래에 있습니다

https://developer.apple.com/documentation/uikit/uiview/1619630-endediting

 

Apple Developer Documentation

 

developer.apple.com

 

 

참고 블로그

 

https://kaushalelsewhere.medium.com/how-to-dismiss-keyboard-in-a-view-controller-of-ios-3b1bfe973ad1

 

Best way to dismiss Keyboard in a View Controller iOS (Swift)

[Updated on 2 Nov 2020]

kaushalelsewhere.medium.com

 

 

 

 

 

728x90

댓글