swift4에서 rxswift를 사용하여 UITextField에 maxlength 설정

3609 단어 SwiftRxSwiftSwift4
이 기사 을 참고로, 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를 인수로 건네주지 않게하고 싶습니다 ...

좋은 웹페이지 즐겨찾기