この記事を参考に、UITextFieldのmaxlengthを設定していたのですが、maxlengthって割と色々なところで設定するんですよね……
なので、もうちょっと色々なUITextFieldから使えるようにしてみました。
実装!
maxlength.swift
func setMaxLength(textField: UITextField, limit: Int) -> (String?) -> Void {
return { txt in
guard let txt = txt else {
return
}
if txt.count >= limit {
let start = txt.startIndex
let end = txt.index(start, offsetBy: limit)
textField.text = txt.substring(with: start..<end)
}
}
}
hogeTextField.rx.text.subscribe(
onNext: setMaxLength(textField: hogeTextField, limit: 10)
)
fugaTextField.rx.text.subscribe(
onNext: setMaxLength(textField: fugaTextField, limit: 10)
)
textFieldを引数で渡さないようにしたい・・・が、ぐぬぬ