use*_*197 2 uitextfield ios swift
我想知道如何显示 中剩余的字符UITextField。
现在我通过以下方式限制字符:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField == TextFieldOne {
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= 55
}
return true
}
Run Code Online (Sandbox Code Playgroud)
我想做的是在您打字时UILabel开始倒计时。55
我正在考虑在 buy 中添加某种逻辑,textFieldDidChange我无法从该函数访问范围。
你需要UITextFieldDelegate.
将委托设置viewDidLoad到textFieldOutlet。
然后你就可以使用这个shouldChangeCharactersInRange函数了。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = self
// here you set the start value 55 of your label
label.text = String(55)
}
}
extension ViewController: UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
guard let text = textField.text else { return true }
let length = text.characters.count + string.characters.count - range.length
// create an Integer of 55 - the length of your TextField.text to count down
let count = 55 - length
// set the .text property of your UILabel to the live created String
label.text = String(count)
// if you want to limit to 55 charakters
// you need to return true and <= 55
return length <= 55 // To just allow up to 55 characters
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2516 次 |
| 最近记录: |