swift4でrxswiftを使用してUITextFieldにmaxlengthを設定する
この記事を参考に、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)
)
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を引数で渡さないようにしたい・・・が、ぐぬぬ
Author And Source
この問題について(swift4でrxswiftを使用してUITextFieldにmaxlengthを設定する), 我々は、より多くの情報をここで見つけました https://qiita.com/fumihiko-hidaka/items/19954fe2f49a75c475e5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .