• Feed
  • Explore
  • Ranking
/
/
    🎨 UIKit & SwiftUI

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

    Swiftios
    지
    지성
    2025.02.11
    ·
    2 min read

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

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

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

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

    해결 방안

    • UITextViewDelegate 의 textViewDidBeginEditing 과 textViewDidEndEditing 을 활용하여 구현

      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
              }
          }
      }






    - 컬렉션 아티클