在Swift中设置UITextField的最大字符长度
我知道还有其他主题,但似乎无法找到实现方法。
我试图将UITextField限制为仅5个字符
最好是字母数字和-和。和_
我看过这段代码
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
{
let maxLength = 4
let currentString: NSString = textField.text
let newString: NSString =
currentString.stringByReplacingCharactersInRange(range, withString: string)
return newString.length <= maxLength
}
和
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { let length = count(textField.text.utf16) + count(string.utf16) - range.length
return length <= 10
}
我只是不知道如何实际实现它,或者我应该换成我的自定义UITextField换成哪个“ textfield”
回答:
您的视图控制器应符合
UITextFieldDelegate
,如下所示:class MyViewController: UIViewController, UITextFieldDelegate {
}
设置文本字段的委托:
myTextField.delegate = self
在您的视图控制器中实现该方法:
textField(_:shouldChangeCharactersInRange:replacementString:)
全部一起:
class MyViewController: UIViewController,UITextFieldDelegate //set delegate to class@IBOutlet var mytextField: UITextField // textfield variable
override func viewDidLoad() {
super.viewDidLoad()
mytextField.delegate = self //set delegate
}
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool
{
let maxLength = 4
let currentString: NSString = textField.text
let newString: NSString =
currentString.stringByReplacingCharactersInRange(range, withString: string)
return newString.length <= maxLength
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { let maxLength = 1
let currentString: NSString = textField.text! as NSString
let newString: NSString =
currentString.replacingCharacters(in: range, with: string) as NSString
return newString.length <= maxLength
}
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { var result = true
if mytextField == numberField {
if count(string) > 0 {
let disallowedCharacterSet = NSCharacterSet(charactersInString: "0123456789.-").invertedSet
let replacementStringIsLegal = string.rangeOfCharacterFromSet(disallowedCharacterSet) == nil
result = replacementStringIsLegal
}
}
return result
}
如何对仅包含最大长度的数字输入的iOS文本字段进行编程
以上是 在Swift中设置UITextField的最大字符长度 的全部内容, 来源链接: utcz.com/qa/428601.html