Я создал протокол с расширением и правильно установил метод textfield, но когда я создал пользовательский класс, я получил значение, но не смог отправить его обратно в протокол.
protocol Limiter {
var limit : Int {get set}
}
extension UIViewController: UITextFieldDelegate{
public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let tf = textField.text ?? ""
guard let stringRange = Range(range, in: tf) else { return false }
// add their new text to the existing text
let updatedText = tf.replacingCharacters(in: stringRange, with: string)
print(updatedText)
return updatedText.count <= (textField as! Limiter).limit
}
}
//Custom class
class TextFieldLimiter: UITextField , Limiter{
var limit: Int = 0
@IBInspectable var maxLength: Int {
get {
print(limit)
return limit
}
set {
limit = newValue
print(limit)
}
}
}
Я попробовал этот код и не уверен, что я делаю правильно или нет.
Так что, пожалуйста, помогите мне ...
Заранее спасибо