[swift] PhoneNumberKit을 사용하여 전화번호 입력시 자동 대문자 변환하기

전화번호를 입력하는 폼에서 사용자가 전화번호를 입력할 때 대문자로 입력되지 않도록 자동으로 변환하는 방법을 알아보겠습니다. 이를 위해서 PhoneNumberKit 라이브러리를 사용할 것입니다. PhoneNumberKit은 Swift에서 전화번호 파싱 및 서식 지정을 쉽게 처리할 수 있는 라이브러리입니다.

PhoneNumberKit 설치

PhoneNumberKit을 사용하기 위해서는 먼저 프로젝트에 해당 라이브러리를 추가해야 합니다. CocoaPods를 사용하는 경우, Podfile에 다음과 같이 추가합니다:

pod 'PhoneNumberKit'

그리고 터미널에서 pod install 명령어를 실행하여 라이브러리를 설치합니다.

사용 방법

PhoneNumberKit을 사용하여 전화번호 입력 시 자동 대문자 변환을 구현하는 방법은 다음과 같습니다.

import PhoneNumberKit

let phoneNumberKit = PhoneNumberKit()

// 텍스트 필드의 delegate 메소드를 구현합니다.
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    guard let currentText = textField.text else { return true }
    let text = (currentText as NSString).replacingCharacters(in: range, with: string)

    do {
        // 입력된 텍스트를 PhoneNumberKit을 사용하여 파싱합니다.
        let parsedPhoneNumber = try phoneNumberKit.parse(text)
        // 파싱된 전화번호를 대문자로 변환합니다.
        let formattedPhoneNumber = phoneNumberKit.format(parsedPhoneNumber, toType: .international).uppercased()

        // 대문자로 변환된 전화번호를 텍스트 필드에 설정합니다.
        textField.text = formattedPhoneNumber

    } catch {
        // 파싱 중 오류가 발생한 경우, 텍스트 필드에 입력된 내용을 변경하지 않습니다.
        return true
    }

    return false
}

위의 코드에서, shouldChangeCharactersIn 메소드는 UITextFieldDelegate 프로토콜의 필수 메소드로, 텍스트 필드의 텍스트가 변경될 때 호출됩니다. 이 메소드를 구현하여 사용자의 입력을 받고, PhoneNumberKit을 사용하여 입력된 번호를 파싱하고 대문자로 변환한 후 텍스트 필드에 설정합니다.

위의 코드를 사용하여 전화번호 입력 폼에서 자동 대문자 변환이 적용됩니다. 이제 사용자가 전화번호를 입력할 때마다 자동으로 대문자로 변환되어 표시됩니다.

참고 문서: