Swift 在文本字段中键入时删除空白

Swift 在文本字段中键入时删除空白,swift,uitextfield,Swift,Uitextfield,我刚刚添加了一个文本字段,允许用户在应用程序中输入收件人的电子邮件地址,而不是在电子邮件视图中 我想限制用户进入空间,这样他们就不能输入无效的电子邮件地址 这是我编写的代码,但在运行时没有任何作用: func textFieldDidChange(textField: UITextField) { var text = emailText.text.stringByReplacingOccurrencesOfString(" ", withString: "") emailTex

我刚刚添加了一个文本字段,允许用户在应用程序中输入收件人的电子邮件地址,而不是在电子邮件视图中

我想限制用户进入空间,这样他们就不能输入无效的电子邮件地址

这是我编写的代码,但在运行时没有任何作用:

func textFieldDidChange(textField: UITextField) {
    var text = emailText.text.stringByReplacingOccurrencesOfString(" ", withString: "")
    emailText.text = text
}

如何在用户键入时替换任何空格实例?

必须将该方法添加为文本字段事件的目标。在viewDidLoad中,添加以下行:

yourTextField.addTarget(self, 
    action: "textFieldDidChange", 
    forControlEvents: .EditingChanged
)
或者,也可能更好,您可以将视图控制器设置为文本字段的委托:

yourTextField.delegate = self
然后实现以下文本字段委托方法:

func textField(_ textField: UITextField!, shouldChangeCharactersInRange 
    range: NSRange, replacementString string: String!) -> Bool
如果替换字符串包含空格,则返回false


也可以认为,除了一个简单的空间外,还有一些空白字符。您可能希望根据NSCharacterSet检查替换字符串。whitespaceCharacterSet

您必须将该方法添加为文本字段事件的目标。在viewDidLoad中,添加以下行:

yourTextField.addTarget(self, 
    action: "textFieldDidChange", 
    forControlEvents: .EditingChanged
)
或者,也可能更好,您可以将视图控制器设置为文本字段的委托:

yourTextField.delegate = self
然后实现以下文本字段委托方法:

func textField(_ textField: UITextField!, shouldChangeCharactersInRange 
    range: NSRange, replacementString string: String!) -> Bool
如果替换字符串包含空格,则返回false

也可以认为,除了一个简单的空间外,还有一些空白字符。您可能需要根据NSCharacterSet.whitespaceCharacterSet检查替换字符串