如何在FPNTextField

问题描述

我正在使用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)
    }
}

解决方法

//您可以更改选择的标志然后设置电话号码

phoneNumberTextField.setFlag(for: .FR)
phoneNumberTextField.set(phoneNumber: "0600000001")

// 或者直接用国家代码设置电话号码,会自动更新国旗图片

phoneNumberTextField.set(phoneNumber: "+33600000001")

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...