出于某种原因,我不明白为什么在填写文本时我的按钮无法启用。
这就是我设置它的方式。
override func viewDidLoad()
{
super.viewDidLoad()
calculateButton.enabled = false
panelWidthTextField.delegate = self
panelsWideTextField.delegate = self
panelHightTextField.delegate = self
panelsHightTextField.delegate = self
panelPitchTextField.delegate = self
}
// Disable button when text is missing
func textFieldDidendEditing(textField: UITextField)
{
if ((panelWidthTextField.text?.isEmpty != nil) &&
(panelsWideTextField.text?.isEmpty != nil) &&
(panelHightTextField.text?.isEmpty != nil) &&
(panelsHightTextField.text?.isEmpty != nil) &&
(panelPitchTextField.text?.isEmpty != nil))
{
calculateButton.enabled = false
}
else
{
self.calculateButton.enabled = true
}
}
如果有人有更好的方法来执行此功能,那么所有的帮助和提示都会受到赞赏
答案 0 :(得分:1)
override func viewDidLoad() {
panelWidthTextField.delegate = self
panelsWideTextField.delegate = self
panelHightTextField.delegate = self
panelsHightTextField.delegate = self
panelPitchTextField.delegate = self
// Disable button
NSNotificationCenter.defaultCenter().addObserver(self, selector: "textChanged:", name: UITextFieldTextDidChangeNotification, object: nil)
calculateButton.enabled = false
}
将此功能放入您的班级
func textChanged(sender: NSNotification) {
if panelWidthTextField.hasText() && panelsWideTextField.hasText() && panelHightTextField && panelPitchTextField.hasText() && panelsHightTextField.hasText(){
calculateButton.enabled = true
} else {
calculateButton.enabled = false
}
}
(myButton必须是出口)
让我知道它是否有效
答案 1 :(得分:0)
而不是cmContextMenu(0) = Array("Cu&t", "owc2")
尝试使用textField.text?.isEmpty != nil
。
如果!textField.text?.isEmtpy
为!
(文本字段中没有文字),则使用isEmpty
(非逻辑运算符)将返回true。
如果false
具有任何值(true或false),则询问isEmpty != nil
是否将返回true