簡體   English   中英

限制設置包中文本字段中的字符數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM