iOS | UITextField, UITextView 커서 tint color 변경하기

UITextField, UITextView의 커서 색과 드래그 시 적용되는 tint color를 한 번에 설정할 수 있는 방법을 소개합니다.

<목차>

  1. Tint Color?
  2. Tint Color를 구성하는 가장 기본적인 방법
  3. AppDelegate 에서 프로젝트 전체 Tint Color 한 번에 설정하기

1. Tint Color?

스크린샷에서 파란색으로 표시되는 UITextField나 UITextView에서 입력할 때 나타나는 커서색 혹은 문자 선택 색.

2. Tint Color를 구성하는 가장 기본적인 방법

1) Storyboard에서 tint color를 지정하기.

storyboard에서 tint color를 변경하고 싶은 컴포넌트를 설정하고 tint color를 지정해주면 됩니다. 간단하쥬?

간단하다는 아주 큰 장점이 있지만 storyboard 파일이 많거나 storyboard 내 컴포넌트가 많은 경우에는 하나하나 일일이 설정해줘야한다는 귀찮은 단점이 있습니다 😥

2) code에서 tint color를 지정하기.

class ViewController: UIViewController {

    @IBOutlet weak var textField: UITextField!
    @IBOutlet weak var textView: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()

        textView.tintColor = .red
        textField.tintColor = .red
    }


}

각각의 property를 설정해주면 됩니다 !

물론 프로젝트 내에서 UITextView(또는 UITextField)의 서브클래스를 만들고 통일해서 사용한다면 각각 설정해줘야하는 불편함은 사라집니다.

서브클래스도 없는 간단한 방법을 다음에서 알아봅시당 고고씽 ~ !

3. AppDelegate 에서 프로젝트 전체 Tint Color 한 번에 설정하기

AppDelegate의 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool 에서 설정하고 싶은 컴포넌트에 대한 코드 한 줄만 적어주면 됩니다.

// 프로젝트 내 모든 UITextField의 tintColor를 red로 고정시킬 때
UITextField.appearance().tintColor = .red

// 프로젝트 내 모든 UITextView의 tintColor를 red로 고정시킬 때
UITextView.appearance().tintColor = .red

정말로 간단하쥬 ~ ? 😋 (백선생님 톤)

위의 코드를 삽입하고 실행시켜주면 아래처럼 모든 tint color가 red가 됩니다 💫

👇전체코드는 아래와 같습니다 👇

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        UITextField.appearance().tintColor = .red
        UITextView.appearance().tintColor = .red
        
        return true
    }

}

간단한 코드지만 도움이 되셨으면 좋겠어요 ! 오늘도 즐거운 iOS 개발 되세용 💜

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중