[英]How to limit the number of characters while also allowing only a subset of characters in a TextField?
[英]Limit the number of characters in textfield within settings bundle
我是 Xcode / Swift 的新手,並且一直在在線關注示例以向我的應用程序添加設置包。
我正在努力解決的是如何限制用戶可以在設置文本字段中輸入的字符數。 root.plist
似乎沒有這個選項, 這個答案似乎是針對應用程序中的文本字段,而不是在設置中更改的文本字段。
請有人指出我正確的方向。
不幸的是,對於在設置包中輸入的文本,這無法完成。 您對此沒有控制權。
您可以在從UserDefaults
加載時解析應用程序中的結果,然后根據需要進行更改,可能會向用戶發出警報。
設置root.plist
將允許您在控件下方添加頁腳文本,因此您至少可以為用戶提供信息,讓他們知道最大長度。
另一種選擇是在您的應用程序中使用自定義設置頁面,並帶有UITextField
。 然后使用UITextFieldDelegate
方法shouldChangeCharactersIn
來控制文本輸入長度。
將您的 TextField 的委托設置為 self 並使您的 ViewController 符合 UITextFieldDelegate
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
guard let textFieldText = textField.text,
let rangeOfTextToReplace = Range(range, in: textFieldText) else {
return false
}
let substringToReplace = textFieldText[rangeOfTextToReplace]
let count = textFieldText.count - substringToReplace.count + string.count
return count <= 10 //number of characters
}
你需要設置 textField 的委托,然后你必須實現下面提到的方法
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let text = (textField.text as NSString?)?.replacingCharacters(in: range, with: string) ?? ""
return text.count <= 10 // your count
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.