관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] \u{200B} 문자열 (Zero Width Space) 본문

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 구분을할때 용이)

* 참고

https://unicode-explorer.com/c/200B

https://bionzhun.tistory.com/7

Comments