How to disable UIButton if UITextField is empty? (Swift 4.x-5.x)

How to disable UIButton if UITextField is empty? (Swift 4.x)
How to disable UIButton if UITextField is empty? (Swift 4.x)

I think it’s pointless make the button for sending data available if data is empty. This is also meaningless for the user. All he’ll get is also empty data.

In some situations, the application may crashes. Same as mine.

Below is a solution to this problem for Swift 4.x-5.0 which I use in my application.

Add UITextFieldDelegate here:

import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var yourTextField: UITextField!
@IBOutlet weak var yourButton: UIButton!

Add code below to your viewDidLoad:

yourButton.isEnabled = false
yourButton.alpha = 0.5

Your UITextField must be delegated!

And finally implement it:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let text = (yourTextField.text! as NSString).replacingCharacters(in: range, with: string)
if text.isEmpty {
 yourButton.isEnabled = false
 yourButton.alpha = 0.5
} else {
 yourButton.isEnabled = true
 yourButton.alpha = 1.0
}
 return true
}