[iOS] UITextView placeholder 만들기

PM077·2023년 1월 6일
0

iOS

목록 보기
10/21

UITextView는 UITextField와 달리 placeholder가 없다. 그렇기에 placeholder를 적용시키고 싶다면 직접 만들어야하는 번거로움이 있다.

과정

  • TextView의 Text 지정해주기
  • TextView의 TextColor 지정해주기
  • textview에서 delegate를 상속받는다
  • UITextViewDelegate에서 textview에 글의 유무를 구별한다(didBeginEditing과 didEndEditing 활용)

코드

// ViewDidLoad()에 layout 지정과 addSubView는 별도!


// textview 선언
    private lazy var textView: UITextView = {
            let textView = UITextView()
            textView.font = .systemFont(ofSize: 14, weight: .medium)
            textView.text = "플레이스홀더~~"
            textView.backgroundColor = .white
            textView.textColor = .placeholderText
            textView.delegate = self
            return textView
        }()

// extension(부분)
extension ViewController: UITextViewDelegate {
    func textViewDidBeginEditing(_ textView: UITextView) {
        guard textView.textColor == .placeholderText else { return }
        textView.textColor = .label
        textView.text = nil
    }
    func textViewDidEndEditing(_ textView: UITextView) {
        if textView.text.isEmpty {
            textView.text = "플레이스홀더~~"
            textView.textColor = .placeholderText
        }
    }
}
profile
PM/PO

0개의 댓글