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
}
你可以玩我创造的游戏