[swift] PhoneNumberKit을 사용하여 전화번호 입력시 자동 제안 기능 추가하기
PhoneNumberKit은 Swift에서 전화번호 관련 작업을 쉽게 처리할 수 있는 라이브러리입니다. 이 라이브러리를 사용하여 전화번호 입력 시 자동 제안 기능을 추가해보겠습니다.
PhoneNumberKit 설치
PhoneNumberKit을 사용하기 위해서는 먼저 프로젝트에 해당 라이브러리를 설치해야 합니다. 이를 위해 CocoaPods를 사용할 예정입니다.
Podfile
을 열고 다음 내용을 추가합니다.
pod 'PhoneNumberKit', '~> 3.0'
- 터미널에서 프로젝트 폴더로 이동한 뒤,
pod install
명령을 실행합니다.
$ pod install
- Xcode에서
*.xcworkspace
파일을 열어 사용할 준비를 마칩니다.
자동 제안 기능 구현하기
- ViewController.swift 파일을 열고, PhoneNumberKit을 import 합니다.
import PhoneNumberKit
- ViewController 클래스에 phoneNumberKit 변수를 추가합니다.
class ViewController: UIViewController {
let phoneNumberKit = PhoneNumberKit()
// ...
}
- UITextFieldDelegate를 구현하기 위해 ViewController 클래스에 UITextFieldDelegate 프로토콜을 상속받도록 해주세요.
class ViewController: UIViewController, UITextFieldDelegate {
// ...
}
- 전화번호를 입력받을 UITextField를 만들고, 해당 UITextField에 대한 delegate를 ViewController로 지정합니다.
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var phoneNumberTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
phoneNumberTextField.delegate = self
}
// ...
}
- UITextFieldDelegate의
textField(_:shouldChangeCharactersIn:replacementString:)
메서드를 구현합니다. 사용자가 전화번호를 입력할 때마다 입력된 문자열을 확인하고, 입력된 문자열이 유효한 전화번호 패턴인지 확인합니다. 유효한 경우에는 자동으로 제안 메시지가 나타나도록 처리합니다.
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var phoneNumberTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
phoneNumberTextField.delegate = self
}
func textField(
_ textField: UITextField,
shouldChangeCharactersIn range: NSRange,
replacementString string: String
) -> Bool {
guard let currentText = phoneNumberTextField.text else { return true }
let updatedText = (currentText as NSString).replacingCharacters(in: range, with: string)
do {
let phoneNumber = try phoneNumberKit.parse(updatedText)
// 자동 제안 메시지 표시
print(phoneNumber.nationalNumber)
} catch {
// 입력된 문자열이 유효하지 않음
// 자동 제안 메시지 숨김
print("유효하지 않은 전화번호: \(updatedText)")
}
return true
}
}
자동 제안 메시지를 표시하기 위해서는 필요한 UI 작업을 추가해야 합니다.
이제, PhoneNumberKit을 사용하여 전화번호 입력 시 자동 제안 기능을 추가하였습니다. 해당 기능을 활용하여 사용자가 쉽게 전화번호를 입력할 수 있도록 도움을 줄 수 있습니다.
더 자세한 내용은 PhoneNumberKit GitHub 페이지에서 확인할 수 있습니다.