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

时间:2014-08-27 01:28:48

标签: swift uitextfield

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

我想限制用户输入空格,以便他们无法输入无效的电子邮件地址。

这是我提出的代码,但在运行时它没有做任何事情:

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

如何在用户输入时替换任何空白实例?

1 个答案:

答案 0 :(得分:4)

您必须将该方法添加为文本字段事件的目标。在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()

的替换字符串