我试图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)