iOS/Swift + Objective-c

[iOS] TextField, TextView 키보드에 가려지는 현상 해결, 포커스 이동 (IQKeyboardManager)

안경 쓴 귀니 2021. 10. 21. 23:43
반응형

TextField, TextView 키보드에 가려지는 현상 해결 방법

TextField, TextView 포커스 위아래로 이동하는 방법

 

  • 화면 하단에 있는 TextField 또는 TextView에 값을 입력하는 경우, 키보드에 가려져 입력한 값이 가려지는 현상
  • 키보드 상단에 포커스 이동하는 버튼을 두고 싶은 경우

 

모두 아래 라이브러리로 쉽게 해결이 가능합니다.

 IQKeyboardManager 

https://github.com/hackiftekhar/IQKeyboardManager

 

지원 언어

 

  • Objective-c
  • Swift

 

설치 방법

 

CocoaPods 또는 Carthage로 설치 (Carthage로 설치 방법은 위 github 링크에서 확인해주세요.)

CocoaPods으로 설치 방법

// Podfile

// Objective-c
pod 'IQKeyboardManager' #iOS8 and later

// Swift
pod 'IQKeyboardManagerSwift'

 

사용 방법

 

AppDelegate에서 enable만 처리해주면 앱에 있는 TextField, TextView에 자동으로 적용됩니다.

// Objective-c
// AppDelegate.m

#import <IQKeyboardManager/IQKeyboardManager.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // enable
    IQKeyboardManager.sharedManager.enable = YES;
    return YES;
}


// Swift
// AppDelegate.swift

import IQKeyboardManagerSwift

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

 

 

스크린샷

 

TextField 위치에 따라 키보드 위에 포커스 이동해주는 버튼 활성화가 바뀝니다.

  • 처음에 위치한 TexetField인 경우는 다음 포커스로 이동
  • 중간에 위치한 TextField인 경우는 이전, 다음 포커스로 이동
  • 마지막에 위치한 TexetField인 경우는 이전 포커스로 이동

 

 

포커스 다음 활성화
포커스 이전, 다음 활성화
포커스 이전 활성화

 

 

주의사항

 

storyboard 또는 xib에 지정된 순서에 따라 포커스 이동이 가능합니다.

아래처럼 설정해야 TextField 1, 2, 3 순서대로 포커스 이동이 가능합니다.

 

아래 같은 경우는 TextField 3, 1, 2 순서대로 포커스 이동이 가능합니다.

 

 

반응형