iOS
[rxSwift] Swift UItextView 에서 Placeholder설정, DidBeginEditing, DidEndEditing
D0HAN.
2021. 6. 3. 01:32
아주아주 간단한 기능들부터 rxSwift 로 하나씩 해보는 중이다.
UItextView 에는 Placeholder기능이 없다.
그래서 야매로 textView Placeholder기능을 구현해봤다.
일단 textview가 클릭됐을때 아무 입력이 없는 상태에서도 DidBeginEditing이 호출되기때문에(처음알았다)
이 때 textView안의 내용이 placeholder의 내용과 같으면 지워주는 식으로 구현을 했다.
만약 클릭을 했다가 아무 내용도 쓰지 않은 채 다른 곳을 누르면 다시 placeholder가 채워져야 하기 때문에
didEndEditing 으로 구현했다.
코드
func textSetUp(){
textView.rx.didBeginEditing
.subscribe(onNext: { [self] in
if(textView.text == """
탈퇴 사유를 남겨주세요.
향후 서비스 개선을 위해 노력하겠습니다.
""" ){
textView.text = nil
textView.textColor = .gray5 //글자 색도 진한 색으로 바꿔줘야한다!
}}).disposed(by: bag)
textView.rx.didEndEditing
.subscribe(onNext: { [self] in
if(textView.text == nil || textView.text == ""){
textView.text = """
탈퇴 사유를 남겨주세요.
향후 서비스 개선을 위해 노력하겠습니다.
"""
textView.textColor = .gray3 //다시 placeholder 글자색으로(연한색)
}}).disposed(by: bag)
}