Tag: nsformatter

按用户键入的格式将UITextField的文本格式设置为电话号码

我有一个自定义的UITextField,我试图“格式化input到电话号码”作为用户types。 我想实现的是: 在UITextField中添加一个前缀+符号作为第一个字符,不能被删除。 以电话号码的格式很好地(+49 291 12345678)格式化stringvariables和UITextField的文本,而不是用户input的普通数字(4929112345678) 。 我研究发现,没有内置的方法。 我还发现了一个名为PhoneNumberKit的易于使用的库,用于将inputstring格式化为电话号码。 在游乐场,它的作品像.. let rawNumberArray = "+4929112345678" let phoneNumbers = PartialFormatter().formatPartial(rawNumberArray) print(phoneNumbers) // "+49 291 12345678" 请记住,图书馆需要string有+作为第一个字符格式正确。 我试着在我的UITextField上实现它。 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { if textField == myTextField { let candidateString : NSString = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string) let updatedTextString : […]

如何为不具有区域设置属性的NSFormatter指定语言环境/语言?

NSFormatter有很多特殊的子类: CNContactFormatter CNPostalAddressFormatter DRMSFFormatter MKDistanceFormatter NSByteCountFormatter NSDateComponentsFormatter NSDateFormatter NSDateIntervalFormatter NSEnergyFormatter NSLengthFormatter NSMassFormatter NSNumberFormatter NSPersonNameComponentsFormatter 我们大多数人都使用NSNumberFormatter和NSDateFormatter 。 这些属性有一个locale属性,可以指定从string转换格式器所支持的“native”格式时使用的语言环境。 其他一些像NSDateComponentsFormatter从它们的一个属性inheritance它们的语言环境( NSDateComponentsFormatter使用指定日历的语言环境,如果有的话)。 大多数其他人似乎没有任何方式来指定一个区域设置。 让我们想到让他们以特定语言/语言环境生成输出的唯一方法是设置系统语言环境,获取输出/将string转换为数字格式,然后将其设置回来。 有没有一种方法来设置像NSByteCountFormatter这样的格式化程序的区域设置,它似乎没有提供任何types的区域设置?