IQKeyboardManager는 iOS 앱에서 키보드를 관리하는 데 사용되는 유용한 라이브러리입니다. 이 라이브러리를 사용하면 키보드가 나타날 때 텍스트 필드와 텍스트 뷰의 위치를 자동으로 조정할 수 있습니다. 또한 키보드가 화면을 가리는 경우 스크롤뷰를 자동으로 스크롤하여 사용자가 입력 필드에 액세스할 수 있도록 도와줍니다.
IQKeyboardManager를 사용하여 키보드 동작을 커스텀하거나 확장하는 방법에 대해 알아보겠습니다.
-
IQKeyboardManager 설치하기 IQKeyboardManager를 사용하기 위해 CocoaPods를 사용하여 프로젝트에 라이브러리를 추가해야 합니다. Podfile에 다음과 같이 추가합니다.
pod 'IQKeyboardManagerSwift'
그런 다음 터미널에서
pod install
명령을 실행하여 라이브러리를 다운로드하고 프로젝트에 추가합니다. -
키보드 동작 커스텀하기 IQKeyboardManager는 기본 설정에서도 훌륭한 동작을 제공하지만, 필요에 따라 동작을 커스텀할 수 있습니다. 예를 들어, 특정 상황에서 키보드가 나타나지 않도록 막을 수 있습니다. 다음은 커스텀 동작을 구현하는 예시입니다.
import IQKeyboardManagerSwift func setupIQKeyboardManager() { IQKeyboardManager.shared.enable = true IQKeyboardManager.shared.shouldShowToolbarPlaceholder = false // 커스텀 동작 추가 IQKeyboardManager.shared.shouldResignOnTouchOutside = true IQKeyboardManager.shared.enableAutoToolbar = true // 다른 커스텀 동작 추가... }
위의 예시에서는
shouldResignOnTouchOutside
속성을true
로 설정하여, 사용자가 키보드 영역 외의 영역을 터치할 때 키보드가 사라지도록 설정하고 있습니다. 또한enableAutoToolbar
속성을true
로 설정하여 자동으로 툴바를 표시하도록 설정하고 있습니다.필요에 따라 다른 속성을 수정하거나 추가하여 앱의 키보드 동작을 커스텀할 수 있습니다.
-
키보드 확장하기 IQKeyboardManager를 사용하여 키보드의 기능을 확장할 수도 있습니다. 예를 들어, 키보드 위에 추가적인 도구 모음을 표시하거나 특정 키보드 동작을 처리할 수 있습니다.
import IQKeyboardManagerSwift func setupIQKeyboardManager() { IQKeyboardManager.shared.enable = true IQKeyboardManager.shared.shouldShowToolbarPlaceholder = false // 키보드 확장 - 도구 모음 추가 let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 44)) let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneButtonTapped)) toolbar.setItems([doneButton], animated: false) IQKeyboardManager.shared.toolbarDoneBarButtonItemText = "완료" IQKeyboardManager.shared.toolbarTintColor = .blue IQKeyboardManager.shared.toolbarPlaceholder = "입력하세요" IQKeyboardManager.shared.toolbarManageBehaviour = .bySubviews IQKeyboardManager.shared.toolbarPreviousNextAllowedClasses.append(TextInputView.self) IQKeyboardManager.shared.registerToolbar(toolbar, with: self) // 다른 확장 동작 추가... } @objc func doneButtonTapped() { // 완료 버튼이 눌렸을 때 처리할 작업 }
위의 예시에서는
setupIQKeyboardManager
함수 내에서 키보드 위에 도구 모음을 추가하는 방법을 보여줍니다.필요에 따라
toolbarTintColor
,toolbarPlaceholder
,toolbarManageBehaviour
등의 속성을 수정하여 도구 모음의 모양과 동작을 커스텀할 수 있습니다.registerToolbar
메서드를 사용하여 도구 모음을 등록하고, 해당 뷰 컨트롤러에서doneButtonTapped
메서드를 구현하여 완료 버튼이 눌렸을 때 처리할 작업을 수행할 수 있습니다.
위의 방법을 사용하여 IQKeyboardManager를 활용하면 선택한 키보드 동작을 커스텀하고 확장할 수 있습니다. 자세한 내용은 IQKeyboardManager 공식 문서를 참조하시기 바랍니다.