问题描述
我正在使用FlagPhoneno Pod通过使用以下代码来搜索或选择带有标志的国家代码。但是,当要进行编辑时,我得到的电话号码是FPNtextFeild ex- +971568573570,默认情况下,我将国家/地区代码设置为.AE
我想检测到任何其他无法从json let recivedPhoneNo = self.json["phone_number"].string ?? ""
获取的国家/地区电话并自动更改国家/地区标志
暂时仅选择时标志正在更改。请向我展示一个示例方法,该方法具有来自同一pod“ FlagPhoneno”模块的代码。
我正在使用以下代码。
func setupPhoneTF(){ self.phoneTFView.layer.borderColor = UIColor.appColor.customGray.cgColor self.phoneTFView.layer.cornerRadius = 5 self.phoneTFView.layer.borderWidth = 1 phoneTF.displayMode = .list // .picker by default listController.setup(repository: phoneTF.countryRepository) listController.didSelect = { [weak self] country in self?.phoneTF.setFlag(countryCode: country.code) } phoneTF.delegate = self phoneTF.font = UIFont.systemFont(ofSize: 14) // Custom the size/edgeInsets of the flag button phoneTF.flagButtonSize = CGSize(width: 35,height: 35) phoneTF.flagButton.imageEdgeInsets = UIEdgeInsets(top: 0,left: 10,bottom: 0,right: 10) let items = [ UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.save,target: self,action: nil),UIBarButtonItem(title: "Item 1",style: .plain,UIBarButtonItem(title: "Item 2",action: nil) ] phoneTF.textFieldInputAccessoryView = getCustomTextFieldInputAccessoryView(with: items) phoneTF.hasPhoneNumberExample = true phoneTF.placeholder = "Phone Number" phoneTF.setFlag(countryCode: .AE) } extension AddNewAddressVC: FPNTextFieldDelegate { func fpnDidValidatePhoneNumber(textField: FPNTextField,isValid: Bool) { textField.rightviewmode = .whileEditing textField.rightView = UIImageView(image: isValid ? imageLiteral(resourceName: "success") : imageLiteral(resourceName: "error")) print( isValid,textField.getFormattedPhoneNumber(format: .E164) ?? "E164: nil",textField.getFormattedPhoneNumber(format: .International) ?? "International: nil",textField.getFormattedPhoneNumber(format: .National) ?? "National: nil",textField.getFormattedPhoneNumber(format: .RFC3966) ?? "RFC3966: nil",textField.getRawPhoneNumber() ?? "Raw: nil" ) } func fpnDidSelectCountry(name: String,dialCode: String,code: String) { print(name,dialCode,code) self.selectedDialCod = dialCode } func fpndisplayCountryList() { let navigationViewController = UINavigationController(rootViewController: listController) listController.title = "Countries" listController.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .stop,action: #selector(dismissCountries)) self.present(navigationViewController,animated: true,completion: nil) } }
@H_502_13@解决方法
//您可以更改选择的标志然后设置电话号码
phoneNumberTextField.setFlag(for: .FR) phoneNumberTextField.set(phoneNumber: "0600000001")
// 或者直接用国家代码设置电话号码,会自动更新国旗图片
phoneNumberTextField.set(phoneNumber: "+33600000001")