Frage

Ich habe XCode verwendet, um meine Apps zu entwickeln und zu verwenden.Ich könnte in IB/Storyboard einen Link erstellen, der diese Methoden synthetisiert:

- (void)addTarget:(id)target action:(SEL)action forControlEvents: (UIControlEvents)controlEvents

für wann

Nein, ich mache das alles programmgesteuert (in Rubymotion, wenn auch nicht unbedingt relevant) und als ich mir die Dokumentation für UITextField angesehen habe, habe ich einige Delegate-Methoden gefunden, die ich wie folgt implementiert habe:

def textFieldShouldReturn(text_field)
  text_field.resignFirstResponder
end

def textFieldShouldEndEditing(text_field)
  # this is for validations; don't set a first responder here
  true
end

def textFieldDidEndEditing(text_field)
  text_field == @email_field ? @password_field.becomeFirstResponder : delegate.validate_login_info
end

Aber dabei stellte ich fest, dass ich die Eingabefelder (von denen ich zwei habe) nicht mit der Tabulatortaste durchblättern konnte.E-Mail und Passwort), wie ich es zuvor mit dem addTarget-Ansatz konnte.

Was ist der Unterschied zwischen diesen beiden Ansätzen?Setzt Ersteres Letzteres hinter den Kulissen um?Ich verstehe nicht, warum mir der eine das Durchblättern erlaubt und der andere nicht.Habe ich die Delegate-Methoden einfach anders implementiert als der Ziel-/Aktionsansatz hinter den Kulissen?

Feedback geschätzt, Pachun

War es hilfreich?

Lösung

Das hat nichts mit Ziel/Aktion zu tun.Ich gehe davon aus, dass Sie im Interface Builder meinen, Sie würden aus dem ziehen UITextField zum File's Owner und wählen Sie im HUD den Delegierten aus.

Das oben Gesagte hätte zur Folge, dass der Delegate des TextFields zugewiesen würde, was Sie in Code wie diesem tun müssten

@email_field.delegate    = self
@password_field.delegate = self

Das Obige geht davon aus, dass die Klasse, die das erstellt UITextField's wird als ihr Delegierter fungieren.

Andere Tipps

Ich weiß nicht, ob in diesem Fall ein Unterschied zwischen Delegation und Ziel / Aktion gibt, aber mit der Delegation auf diese Weise funktioniert: generasacodicetagpre.

grüße

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top