[swift] PhoneNumberKit을 사용하여 특정 국가의 전화번호 대화 상자 띄우기

전화번호 형식 검증과 국가별 전화번호 형식화를 쉽게 처리하기 위해 PhoneNumberKit이라는 라이브러리를 사용할 수 있습니다. 이 라이브러리를 사용하여 특정 국가의 전화번호를 입력 받을 수 있는 대화 상자를 띄우는 방법을 알아보겠습니다.

PhoneNumberKit 라이브러리 설치

먼저, PhoneNumberKit 라이브러리를 설치해야 합니다. Cocoapods를 사용하는 경우 Podfile에 다음과 같이 추가합니다.

pod 'PhoneNumberKit'

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

전화번호 대화 상자 구현

다음으로, 전화번호 형식을 입력 받는 대화 상자를 구현해보겠습니다.

import PhoneNumberKit

func showPhoneNumberDialog() {
    let phoneNumberKit = PhoneNumberKit()
    
    let alertController = UIAlertController(title: "전화번호 입력", message: nil, preferredStyle: .alert)
    alertController.addTextField { textField in
        textField.placeholder = "전화번호"
        textField.keyboardType = .phonePad
    }
    
    let okAction = UIAlertAction(title: "확인", style: .default) { _ in
        guard let textField = alertController.textFields?.first,
              let inputPhoneNumber = textField.text else {
            return
        }
        
        do {
            let phoneNumber = try phoneNumberKit.parse(inputPhoneNumber, withRegion: "KR", ignoreType: false)
            print(phoneNumber.numberString)
        } catch {
            print("잘못된 전화번호 형식입니다.")
        }
    }
    
    let cancelAction = UIAlertAction(title: "취소", style: .cancel, handler: nil)
    
    alertController.addAction(okAction)
    alertController.addAction(cancelAction)
    
    // 현재 화면에 대화 상자를 표시
    if let topViewController = UIApplication.shared.windows.first?.rootViewController {
        topViewController.present(alertController, animated: true, completion: nil)
    }
}

이제 showPhoneNumberDialog() 함수를 호출하면 특정 국가(여기에서는 “KR”로 설정)의 전화번호를 입력 받는 대화 상자가 표시됩니다. 입력된 전화번호는 PhoneNumberKit을 사용하여 형식을 검증하고, 유효한 경우 phoneNumber.numberString을 통해 전화번호를 얻을 수 있습니다. 잘못된 형식의 전화번호인 경우에는 에러 처리를 하여 사용자에게 알립니다.

참고문서