2017-11-27 5 views
0

Also ich bin sehr neu in der Codierung, aber ich versuche, ein einfaches Textfeld zu machen, wo Sie Passwort eingeben können, und wenn dieses Passwort/string gleich dem Passwort ist, das ich gesetzt habe, wird es tun, um eine Aktion .. hier ist das, was ich bisher habe, aber es ist nichtSimple IsEqualTo Passwort, brauche Beratung

@IBOutlet weak var KodeText: UITextField! 
@IBOutlet weak var enterknapp: UIButton! 

var password = "123" 




override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    enterknapp.isEnabled = false 

    if password == KodeText.text { enterknapp.isEnabled = true 
} 

}

+0

Haben Sie mit einem Haltepunkt überprüft, dass * enterknapp .isEnabled = true * wird ausgeführt? – Oxthor

+0

Passwort in "shouldChangeCharactersIn" der UITextFieldDelegate-Funktion oder Click-Ereignis von UIButton (enterknapp) vergleichen, nicht in viewDidLoad. –

Antwort

0

der Grund, warum dies nicht der Fall funktioniert, weil Sie es von der viewDidLoad Methode aufrufen Dosis arbeiten. Im Anwendungslebenszyklus werden eine Reihe von integrierten Methoden in einer bestimmten Reihenfolge aufgerufen, und wenn Sie sie überschreiben, können Sie die von Ihnen benötigten Funktionen ausführen. In Ihrem Fall wird die viewDidLoad ausgeführt, wenn der viewController von der nib geladen wird. Zu dieser Zeit haben Sie nichts im KodeText (bitte verwenden Sie Kleinbuchstaben für Eigenschaftsnamen).

Sie entweder setzen eine andere Taste und eine Aktion erstellen (kein Ausgang wie für enterknapp und Sie tun, um Ihren Code gibt oder Sie die TextFieldDelegate Protokoll auf Änderungen überprüfen implementieren.