0
我有這個條件的文本框,在這裏 -斯威夫特:無法在文本框與基於狀態字的限制刪除字符
- 如果在國家的下拉列表中,我選擇BE,然後以同樣形式的文本框應該只允許4個字符
- 如果不是BE,那麼文本字段只允許有12個字符。
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
問題 -
我這個使用來實現:
以上實施工作不錯,但 -
- 我選擇不是被其他的國家(即文本字段中允許有12個字符)並保存數據。
- 重新打開表格並選擇「是」。現在我根本無法編輯文本字段。
我該如何解決這個問題?
這裏是我完整的代碼 -
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
var maxLength: Int?
let newText = NSString(string: textField.text!).stringByReplacingCharactersInRange(range, withString: string)
if ((textField.textInputMode?.primaryLanguage == "emoji") || (textField.textInputMode?.primaryLanguage == nil)){
return false
}
switch textField {
case postCodeText:
if (self.selectedCountryCode == "BE") {
maxLength = 4
}
else {
maxLength = 12
}
return newText.characters.count <= maxLength
case streetText:
maxLength = 40
return newText.characters.count <= maxLength
}
}
編輯1:新增了屏幕記錄 recordit link demonstrating the problem
退格是否工作在文本框編輯 –
一般情況下,是的,它的功能是否正常的一個例子......但是當我嘗試的場景「的問題」解釋部分,退格不起作用 –