LoginSignup
2
1

More than 5 years have passed since last update.

swift4でrxswiftを使用してUITextFieldにmaxlengthを設定する

Posted at

この記事を参考に、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を引数で渡さないようにしたい・・・が、ぐぬぬ:joy:

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1