小编Jas*_*nTW的帖子

如何在 Swift 中的单独类中设置 UITextField 的委托?

我试图UITextFieldDelegate在单独的类中实现,但它不起作用:

class ViewController: UIViewController {

    @IBOutlet var TextField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        let restrictor = TextFieldRestrictController()
        TextField.delegate = restrictor
    }
}

class TextFieldRestrictController : NSObject, UITextFieldDelegate {

    public func textField(_ textField: UITextField,
                          shouldChangeCharactersIn range: NSRange,
                          replacementString string: String) -> Bool {
        let inverseSet = NSCharacterSet(
            charactersIn:"0123456789.").inverted

        let components = string.components(separatedBy: inverseSet)

        let filtered = components.joined(separator:"")
        return string == filtered
    }
}
Run Code Online (Sandbox Code Playgroud)

但这正在起作用:

class ViewController: UIViewController {

    @IBOutlet var TextField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        TextField.delegate …
Run Code Online (Sandbox Code Playgroud)

delegates uitextfield uitextfielddelegate swift

4
推荐指数
1
解决办法
1536
查看次数