UITextField
에는 기본적으로 Placeholder 속성이 있지만, UITextView
에는 Placeholder 기능이 없다. 따라서, UITextView
에 Placeholder를 적용하고 싶다면 직접 구현해야 한다.
Placeholder를 구현하기 위해 몇 가지 방법을 시도해봤다.
Attribute Inspector에서 Placeholder 속성 찾기: 속성 자체가 없음
기본 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 } } }