Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 当textfield中包含整数时,按钮未启用/禁用_Swift_Button_Uitextfield - Fatal编程技术网

Swift 当textfield中包含整数时,按钮未启用/禁用

Swift 当textfield中包含整数时,按钮未启用/禁用,swift,button,uitextfield,Swift,Button,Uitextfield,我试图在用户将整数值输入标记为“华氏度”的文本字段后激活“转换”按钮。在文本字段中键入整数后,我很难获取要激活的文本字段。请参阅下面的代码以供参考 override func viewDidLoad() { super.viewDidLoad() Fahrenheit.becomeFirstResponder() Convert.enabled = false Fahrenheit.delegate = self Fahrenheit.keyboardTy

我试图在用户将整数值输入标记为“华氏度”的文本字段后激活“转换”按钮。在文本字段中键入整数后,我很难获取要激活的文本字段。请参阅下面的代码以供参考

override func viewDidLoad() {
    super.viewDidLoad()
    Fahrenheit.becomeFirstResponder()
    Convert.enabled = false
    Fahrenheit.delegate = self
    Fahrenheit.keyboardType = .DecimalPad

    if Int(Fahrenheit.text!) != nil{
        Convert.enabled = true
    }else{
        Convert.enabled = false

    }
您可以通过
UITextFieldDelegate
协议实现,并检查textField是否包含任何文本:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
  let currentText = NSString(string: textField.text ?? "")
  let newText = currentText.stringByReplacingCharactersInRange(range, withString: string)

  convertButton.enabled = !newText.isEmpty
  return true
}

或者,如果您确定只要文本字段是第一响应者,用户就不会按下按钮,您也可以在
textfielddidediting(textField:)
中执行上述签入操作:

func textFieldDidEndEditing(textField: UITextField) {
  convertButton.enabled = textField.text?.isEmpty ?? false
}
你可以玩我创造的游戏