我正在尝试将自动日期格式添加到我的应用中的文本字段,但是我遇到了问题。
基本上,我希望文本字段格式化用户在输入此格式时输入的数字 - xx-xx-xxxx。实际的格式似乎有效,但问题是:
1)用户开始输入后,文本字段会添加“0”。 2)在点击删除按钮之前,文本字段不会更新格式。
这是我的代码:
func textFieldChanged(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: NSString!) -> Bool {
var formatter = NSNumberFormatter()
var lengthString: String = string
let newLength = countElements(transactionDateInput.text!) + countElements(lengthString) - range.length
if string.length == 0 {
formatter.groupingSeparator = "/"
formatter.groupingSize = 4
formatter.usesGroupingSeparator = true
formatter.secondaryGroupingSize = 2
var num: NSString = transactionDateInput.text
num = num.stringByReplacingOccurrencesOfString("-", withString: "")
var str: NSString = formatter.stringFromNumber(NSNumber.numberWithDouble(num.doubleValue))
transactionDateInput.text = str
return true && newLength <= 10
} else {
formatter.groupingSeparator = "/"
formatter.groupingSize = 2
formatter.usesGroupingSeparator = true
formatter.secondaryGroupingSize = 2
var num: NSString = transactionDateInput.text
if num.isEqualToString("") {
num = num.stringByReplacingOccurrencesOfString("-", withString: "")
var str: NSString = formatter.stringFromNumber(NSNumber.numberWithDouble(num.doubleValue))
transactionDateInput.text = str
}
return true && newLength <= 10
}
}
我该如何解决这些问题?
答案 0 :(得分:0)
您是否考虑过隐形文本字段?然后,您可以在可见文本字段中将文本捕获为已键入和输出格式化文本。这样你就可以控制一切。