您好我正在创建一个iphone应用程序,其中一个条件是用户不应该输入“0”作为他/她的响应的第一个数字(当UITextField作为其占位符值时),除非正确的答案是0。
到目前为止我所拥有的只是让我输入0但仍然不允许100出现
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let leadingZero = textField.text?.rangeOfString("0")
let replacementZero = string.rangeOfString("0")
if leadingZero != nil && replacementZero != nil {
return false
}
return true
}
答案 0 :(得分:1)
采取正确的答案
//make it true or false depending whether your correct answer is zero
var correctAnswerIsZero = false
将目标添加到文本字段
myTextField.addTarget(self, action: #selector(textfieldDidChange), for: .editingChanged)
目标的定义
func textfieldDidChange(textfield:UITextField) {
if correctAnswerIsZero {
} else {
//if correct answer is not zero
if textfield.text?.characters.first == "0" {
print("You have entered 0, so deleting it")
textfield.text = ""
}
}
}
答案 1 :(得分:0)
如果您只需要检查textField是否为空,并且拒绝允许输入0,则可以执行以下操作:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return (textField.hasText || string != "0") ? true : false
}
hasText会忽略占位符文本,因此不会成为问题。
答案 2 :(得分:0)
//创建文本字段操作方法编辑已更改
@IBAction func TextfieldCheck(sender: AnyObject) {
if YOURTEXTFIELD.text?.characters.count > 0 {
let str : String = YOURTEXTFIELD.text!
if str.characters.count < 3 {
if str .containsString("0")
{
YOURTEXTFIELD.text = ""
}
}
}
}
你的问题现在就解决了。如果我的代码遇到任何问题,请告诉我