iOS 응용 (swift)
[iOS - swift] \u{200B} 문자열 (Zero Width Space)
jake-kim
2023. 10. 25. 01:50
Zero Width Space
- "\u{200B}" 문자는 "zero width space"라고 불리며, 문자열은 있지만 너비의 크기가 0인 문자
- ex) 두 개의 UITextField에 placeholder 텍스트를 지정하고, text 값에는 각각 ""와 "\u{200B}"를 입력한 상태
private let textField1 = {
let textField = UITextField()
textField.font = .systemFont(ofSize: 24, weight: .regular)
textField.text = ""
textField.textColor = .black
textField.placeholder = "placeholder (empty spacing)"
return textField
}()
private let textField2 = {
let textField = UITextField()
textField.font = .systemFont(ofSize: 24, weight: .regular)
textField.text = "\u{200B}"
textField.placeholder = "placeholder (200B)"
textField.textColor = .black
return textField
}()
("" 문자는 placeholder가 표시되고, "\u{200B}"는 placeholder표시 x)

- count값을 보면 empty string은 0이 나오고, "\u{200B}"은 1로 출력
print(textField1.text!.count, textField2.text!.count)
print(textField1.text!.utf16Count, textField2.text!.utf16Count)
/*
0 1
0 1
*/
extension String {
var utf16Count: Int {
utf16.count
}
}
- textField.text = "A\u{200B}B"라고 입력하면 \u{200B}영역은 길이가 0이므로 없는것처럼 출력
textField.text = "A\u{200B}B"

- (만약 UITextView에 커스텀 placeholder 같은것을 만들때 empty spacing을 주어 placholder 구분을할때 용이)
* 참고