如何限制文本字段中的首字母而不是空格?

问题描述 投票:-1回答:1

在文本字段中,用户输入字母,数字和一些空格,但首字母不包含空格我有谓词

let string = "^A-Za-z0-9 "

let predicateTest = NSPredicate(format: "SELF MATCHES %@", string)

通过使用这个,我可以限制特殊字符。但是,如何限制首字母的空格?我知道在文本字段委托中我通过使用范围来限制,但是我需要通过上述过程来进行限制。

ios swift uitextfield
1个回答
0
投票

您可以继承UITextField的子类,创建CustomTextField并在传递谓词时使用drop(while:)来检查每个字符是否为仅修剪字符串开头的空格:

import UIKit
class CustomTextField: UITextField {
    override func willMove(toSuperview newSuperview: UIView?) {
        addTarget(self, action: #selector(editingChanged), for: .editingChanged)
        textAlignment = .left
        editingChanged()
    }
    @objc func editingChanged() {
        text?.removeAll { !($0.isLetter || $0.isWholeNumber || $0.isWhitespace) }
        text = .init(text?.drop { $0.isWhitespace } ?? "")
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.