[swift] IQKeyboardManager를 사용해서 키보드 입력에 따라 다른 동작을 수행할 수 있나요?

IQKeyboardManager를 사용하기 위해서는 먼저 프로젝트에 해당 라이브러리를 추가해야 합니다. 이를 위해서는 CocoaPods를 사용하여 다음과 같이 Podfile에 라이브러리를 추가합니다.

pod 'IQKeyboardManagerSwift'

설치가 완료되면 AppDelegate.swift 파일에서 다음 코드를 추가하여 IQKeyboardManager를 초기화합니다.

import IQKeyboardManagerSwift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    IQKeyboardManager.shared.enable = true
    return true
}

이제 IQKeyboardManager를 사용하여 키보드 동작에 따른 다른 동작을 수행할 수 있습니다. 다음은 IQKeyboardManager를 사용하여 키보드가 나타날 때 다른 뷰를 움직이는 예제 코드입니다.

import IQKeyboardManagerSwift

override func viewDidLoad() {
    super.viewDidLoad()
    
    IQKeyboardManager.shared.enable = true
    IQKeyboardManager.shared.keyboardDistanceFromTextField = 50
    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(notification:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(notification:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}

@objc func keyboardWillShow(notification: Notification) {
    // 키보드가 나타날 때 뷰의 위치를 조정합니다.
    // 예를 들어, 텍스트필드가 가려지지 않도록 뷰를 위로 이동시킬 수 있습니다.
}

@objc func keyboardWillHide(notification: Notification) {
    // 키보드가 사라질 때 뷰를 원래 위치로 복원합니다.
}

위의 코드에서 keyboardWillShow(notification:)keyboardWillHide(notification:) 메서드를 사용하여 키보드의 등장 및 사라짐에 대한 이벤트를 처리하고, 원하는 동작을 수행할 수 있습니다.

이 외에도 IQKeyboardManager는 다양한 기능을 제공하므로, 필요에 따라 공식 문서를 참조하여 추가적인 사용법을 확인할 수 있습니다.