如何在UItext字段中为swift添加永久占位符?

时间:2018-02-17 17:13:57

标签: ios swift uitextfield

我正在尝试允许文本字段在用户开始输入时始终具有“@ gmail.com”。因此,在对文本字段进行任何更改后,它将始终将该行附加到用户已键入的任何内容,并且用户不应该将其删除。

我尝试过使用“shouldChangeCharactersIn”功能,但似乎无法使其正常工作。

我这样做的原因是用户可以理解我们只接受gmail帐户并认为这是最好的方式,而不是尝试解析字符串的最后10个字符来检查“@gmail .COM”。

1 个答案:

答案 0 :(得分:1)

你应该这样做:

enter image description here

如果用户添加@然后拒绝该部分,则拥有控件:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if textField.tag == 0 {
        if string == "@" {
            return false
        }
    }
    return true
}

因此,您基本上会显示标签为@gmail.com,并且用户会在textField中添加第一部分。

<强>更新
如果你真的想在textField中使用它:

func textFieldDidBeginEditing(_ textField: UITextField) {
        textField.text = textField.text! + "@gmail.com"

        textField.selectedTextRange = textField.textRange(from: textField.beginningOfDocument, to: textField.beginningOfDocument)
    }

这里有两个部分:
1:textField.text = textField.text! + "@gmail.com" - 将@ gmail.com添加到您的字符串中

2:textField.selectedTextRange = textField.textRange(from: textField.beginningOfDocument, to: textField.beginningOfDocument) - 当用户点击textField时,将光标放在开头。