IOS TextField没有零

时间:2016-10-14 02:31:20

标签: ios iphone swift

您好我正在创建一个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
}

3 个答案:

答案 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 = ""
            }
        }
    }
 } 

你的问题现在就解决了。如果我的代码遇到任何问题,请告诉我