当文本字段中有整数时,按钮不启用/禁用
Posted
技术标签:
【中文标题】当文本字段中有整数时,按钮不启用/禁用【英文标题】:Button not enabling/disabling when textfield has integer in it 【发布时间】:2016-08-12 00:43:58 【问题描述】:一旦用户将整数值输入到标有“华氏度”的文本字段中,我将尝试激活“转换”按钮。在文本字段中输入整数后,我无法激活文本字段。请参阅下面的代码以供参考
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
【问题讨论】:
【参考方案1】:您可以从UITextFieldDelegate
协议实现textField(textField:shouldChangeCharactersInRange:replacementString:)
并检查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
或者,如果您确定只要文本字段是第一响应者,用户就不会按下按钮,您也可以在textFieldDidEndEditing(textField:)
中进行上述检查:
func textFieldDidEndEditing(textField: UITextField)
convertButton.enabled = textField.text?.isEmpty ?? false
您可以使用我创建的test project。
【讨论】:
以上是关于当文本字段中有整数时,按钮不启用/禁用的主要内容,如果未能解决你的问题,请参考以下文章