Advertisement
Larme

Untitled

May 24th, 2023
1,745
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.88 KB | None | 0 0
  1.     static func createLoginDialog(buttonPressed: @escaping (_ username:String, _ pw:String) -> Void) -> UIAlertController {
  2.         let alert = UIAlertController(title: "Login", message: "", preferredStyle: .alert)
  3.        
  4.         let loginAction = UIAlertAction(title: "Log in", style: .default, handler: { _ in
  5.             let u = alert.textFields![0].text!
  6.             let p = alert.textFields![1].text!
  7.             buttonPressed(u,p)
  8.         })
  9.        
  10.         alert.addAction(loginAction)
  11.         loginAction.isEnabled = false
  12.        
  13.         var textFields: [UITextField] = []
  14.        
  15.         alert.addTextField { textField in
  16.             textField.placeholder = "Enter Username"
  17.             textFields.append(textField)
  18.             NotificationCenter.default.addObserver(forName: UITextField.textDidChangeNotification,
  19.                                                    object: textField,
  20.                                                    queue: .main) { _ in
  21.                 if textFieldsAreValid(textFields) {
  22.                     loginAction.isEnabled = true
  23.                 }
  24.             }
  25.         }
  26.        
  27.         alert.addTextField { textField in
  28.             textField.placeholder = "Enter Password"
  29.             textFields.append(textField)
  30.             NotificationCenter.default.addObserver(forName: UITextField.textDidChangeNotification,
  31.                                                    object: textField,
  32.                                                    queue: .main) { _ in
  33.                 if textFieldsAreValid(textFields) {
  34.                     loginAction.isEnabled = true
  35.                 }
  36.             }
  37.         }
  38.        
  39.         func textFieldsAreValid(_ textFields: [UITextField]) -> Bool {
  40.             textFields.allSatisfy { !($0.text ?? "").isEmpty } //Do the needed tests, I just check if not empty
  41.         }
  42.        
  43.         return alert
  44.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement