2016-07-04 26 views
0

Ich habe ein Benutzername/E-Mail und Passwort-Feld mit einem Login-Button auf einer Anmeldeseite. Wenn sich der Benutzer im Passwortfeld befindet, wird die Tastatur mit einer Return-Taste angezeigt. Wie lege ich diese Return-Taste fest, um die gleiche Aktion wie die Login-Taste auszuführen, damit der Benutzer die Tastatur nicht schließen und die Login-Taste berühren muss?iOS Return-Taste - Login-Aktion

class LoginScreen: UIViewController, UITextFieldDelegate{ 


@IBOutlet weak var userName: UITextField! 


@IBOutlet weak var password: UITextField! 

@IBOutlet weak var errorMessage: UILabel! 


override func viewDidLoad() { 
    super.viewDidLoad() 


    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(JournalEntryViewController.dismissKeyboard)) 
    view.addGestureRecognizer(tap) 
} 

func dismissKeyboard() { 

    view.endEditing(true) 
} 

func textFieldShouldReturn(textField: UITextField) -> Bool { 
    self.view.endEditing(true) 
    return false 
} 




@IBAction func loginUser(sender: AnyObject) { 
    //self.performSegueWithIdentifier("loginComplete", sender: self) 


    FIRAuth.auth()?.signInWithEmail(userName.text!, password: password.text!) { 

     (user, error) in 

    if error != nil{ 

     self.errorMessage.text = "Please check email and password" 

    } else { 

     self.performSegueWithIdentifier("loginComplete", sender: self) 

    } 

Ich habe mir ähnliche Posts angeschaut, bekomme es aber nicht ganz. Jede Hilfe wird geschätzt.

Antwort

1

ohne Codierung Sie dies einfach durch das Verbinden erreichen Ereignis des UITextField zum IBAction des jeweiligen UIViewController „On Exit Ende Haben“, wie in Abbildung dargestellt.

enter image description here

+0

Arbeitete perfekt. Vielen Dank. – Blackbox

1

Ich verwende derzeit diese Funktion, die die Login-Funktion aufrufen wird, wenn die Eingabetaste auf der Tastatur gedrückt wird.

func textFieldShouldReturn(textField: UITextField) -> Bool { 

    if textField == self.passwordTextField { 
     loginAction(textField) 
    } else { 
     self.passwordTextField.becomeFirstResponder() 
    } 
    return true 
} 
0
func textFieldShouldReturn(textField: UITextField!) -> Bool { 

//textField code 

if textField == self.passwordTextField { 
    textField.resignFirstResponder() //if desired 
    performLogin() 
    } 

    return true 
} 

func performLogin() { 

//// Login methods 
    } 
0

Delegierten Verwendung Textfeld, um benutzerdefinierte Ihre Return-Taste

0

du versuchen.

func textFieldShouldReturn(textField: UITextField) -> Bool { 

    if textField == self.passwordTextField { 
     self.loginUser(textField) 
    } else { 
     self.passwordTextField.becomeFirstResponder() 
    } 
return true 
}