[UIKit] UITextView에 Placeholder 적용하는 방법

Swiftios
avatar
2025.02.11
·
2 min read

UITextField 에는 기본적으로 Placeholder 속성이 있지만, UITextView 에는 Placeholder 기능이 없다. 따라서, UITextView 에 Placeholder를 적용하고 싶다면 직접 구현해야 한다.

Placeholder를 구현하기 위해 몇 가지 방법을 시도해봤다.

  1. Attribute Inspector에서 Placeholder 속성 찾기: 속성 자체가 없음

  2. 기본 text 속성에 Placeholder 값을 넣기(textView.text = "입력하세요."): 사용자가 입력을 시작해도 기존 텍스트가 남아 있어, 일반적인 Placeholder처럼 동작하지 않음

해결 방안

  • UITextViewDelegatetextViewDidBeginEditingtextViewDidEndEditing 을 활용하여 구현

    class ViewController: UIViewController, UITextViewDelegate {
        
        @IBOutlet weak var textView: UITextView!
        
        let placeholder = "입력하세요."
    
        override func viewDidLoad() {
            super.viewDidLoad()
            
            textView.delegate = self  // Delegate 설정
            textView.text = placeholder
            textView.textColor = .lightGray
        }
        
        // 사용자가 입력을 시작하면 Placeholder 제거
        func textViewDidBeginEditing(_ textView: UITextView) {
            if textView.text == placeholder {
                textView.text = ""
                textView.textColor = .black
            }
        }
        
        // 사용자가 입력하지 않고 종료하면 Placeholder 다시 추가
        func textViewDidEndEditing(_ textView: UITextView) {
            if textView.text.isEmpty {
                textView.text = placeholder
                textView.textColor = .lightGray
            }
        }
    }






- 컬렉션 아티클