限制UITextField的字符时,“完成”按钮不起作用

时间:2019-04-04 09:25:24

标签: ios swift uitextfield

我正在使用以下代码将用户限制为UITextField仅使用某些字符。允许的字符在扩展字符串内。效果很好,但我面临的问题是用户无法按“完成”按钮并运行我的代码。

我是新手,很快就发现堆栈溢出。我不知道该怎么办。

extension String {

    var containsValidCharacter: Bool {
        let characterSet = CharacterSet(charactersIn: "1234567890 -")
        let range = (self as NSString).rangeOfCharacter(from: characterSet)
        return range.location != NSNotFound
    }
}


func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    return string.containsValidCharacter
}

我只希望“ 完成”按钮起作用。

1 个答案:

答案 0 :(得分:0)

尝试覆盖此 UITextFieldDelegate 方法。

func textFieldShouldReturn(_ textField: UITextField) -> Bool{
    return true    
}

Documentation