Вы должны присвоить текстовое поле делегату
textField.delegate = self
, а затем проверить, проверен ли специальный символ или нет
extension ViewController: UITextFieldDelegate {
public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField.isFirstResponder {
let validString = CharacterSet(charactersIn: "!@#$%^&*()_+{}[]|\"<>,.~`/:;?-=\\¥'£•¢")
if let range = string.rangeOfCharacter(from: validString) {
return false
}
}
return true
}
}