[swift] IQKeyboardManager를 사용해서 키보드 입력에 따라 화면 이동을 처리할 수 있나요?

먼저 IQKeyboardManager를 프로젝트에 추가해야 합니다. CocoaPods를 사용하는 경우, Podfile에 다음과 같이 추가할 수 있습니다:

pod 'IQKeyboardManagerSwift'

이후 터미널에서 pod install 명령을 실행하여 라이브러리를 설치합니다.

다음으로, AppDelegate.swift 파일을 열고 import IQKeyboardManagerSwift 구문을 추가합니다. didFinishLaunchingWithOptions 메서드에서 다음 코드를 추가하여 키보드 매니저를 활성화합니다:

IQKeyboardManager.shared.enable = true

이제 IQKeyboardManager를 사용하여 키보드와 상호 작용할 준비가 되었습니다.

키보드 입력에 따라 화면 이동을 처리하려면 아래와 같이 IQKeyboardManager의 델리게이트 메서드를 구현해야 합니다:

class ViewController: UIViewController, UITextFieldDelegate {
    
    @IBOutlet weak var textField: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        textField.delegate = self
    }
    
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
    
    func textFieldDidBeginEditing(_ textField: UITextField) {
        // 키보드가 보여질 때 화면을 이동시키는 로직을 작성합니다.
        // 예를 들어, textField가 키보드에 가려진다면 textField가 감싸고 있는 스크롤뷰를 올리는 등의 작업을 수행할 수 있습니다.
    }
    
    func textFieldDidEndEditing(_ textField: UITextField) {
        // 키보드가 사라질 때 화면을 이동시키는 로직을 작성합니다.
        // 예를 들어, textField가 키보드에 가려져있는 다른 뷰를 원래의 위치로 움직이는 등의 작업을 수행할 수 있습니다.
    }
}

위의 코드에서 textFieldDidBeginEditingtextFieldDidEndEditing 메서드를 사용하여 키보드가 보여지거나 사라질 때 화면을 이동시킬 수 있습니다. 원하는 로직을 추가하여 키보드와의 상호 작용을 처리할 수 있습니다.

IQKeyboardManager는 또한 키보드의 생명 주기 이벤트와 관련된 다양한 기능을 제공합니다. 더 자세한 내용은 IQKeyboardManager의 공식 문서를 참조하시기 바랍니다.

참조: