nicht sicher, was Sie tatsächlich innerhalb BecomeFirstResponder
tun wollen, aber ohne eine benutzerdefinierte Unterklasse von UITextField
zu erstellen, können Sie eine benutzerdefinierte UITextFieldDelegate
und weisen es der UITextField.Delegate
Eigenschaft erstellen.
Wenn Sie versuchen, das Feld zu verhindern, dass ein Ersthelfer werden, könnten Sie die UITextFieldDelegate.ShouldBeginEditing
verwenden false
zurückzukehren, diese Methode aufgerufen wird, bevor BecomeFirstResponder
genannt wird) und UITextFieldDelegate.EditingStarted
wird aufgerufen, nachdem BecomeFirstResponder
genannt wird:
public class TextFieldDelegate : UITextFieldDelegate
{
public override bool ShouldBeginEditing(UITextField textField)
{
return base.ShouldBeginEditing(textField);
}
public override void EditingStarted(UITextField textField)
{
base.EditingStarted(textField);
}
}
dem folgenden Link finden Sie den vollständigen Auftrag/Fluss aller Methodenaufrufe von UITextFieldDelegate
Bewertung:
Ref: https://developer.apple.com/reference/uikit/uitextfielddelegate
Update:
Hier ist, wie ich die SecureTextEntry
Toggle/Keine klare Feld bearbeiten tun:
1) Individuelle UITextFieldDelegate
:
public class SecureTextFieldDelegate : UITextFieldDelegate
{
public override void EditingStarted(UITextField textField)
{
if (textField.SecureTextEntry != true)
{
var text = textField.Text;
textField.DeleteBackward();
textField.InsertText(text);
}
}
}
2) Richten Sie Ihre UITextField:
uiTextField.Delegate = new SecureTextFieldDelegate();
3) Handle Touch von Umschalt- und/oder physikalischem Tastaturfeld Tabbing:
uiSwitch.ValueChanged += (object sender, EventArgs e) =>
{
uiTextField.SecureTextEntry = !uiTextField.SecureTextEntry;
if (uiTextField.SecureTextEntry == true)
{
var text = uiTextField.Text;
uiTextField.DeleteBackward();
uiTextField.InsertText(text);
}
};
Die UITextField.Text
jetzt sollte nie klar, wenn der Benutzer ein führt löschen
Ich versuche, die UITextField überschreibt das Passwortfeld zu blockieren, wenn der Fokus wieder aufgenommen wird und ein Benutzer beginnt wieder Bearbeitung (ein Passwort Sichtbarkeit Umschaltknopf). Dies ist die Obj-C-Lösung: http://stackoverflow.com/a/37061759/1090359. Ich werde mir die von Ihnen gepostete Lösung für einen Delegierten ansehen und sehen, was ich mir vorstellen kann. – kspearrin
@kspearrin Ah ... der benutzerdefinierte Delegat ist der Weg zu gehen, es sei denn, Sie arbeiten mit einem Unterklasse 'UITextField' ..., checkup mein Update – SushiHangover
Ich bekomme den folgenden Fehler bekommen versuchen, den Delegaten in der Gewohnheit zu verdrahten Renderer 'OnElementChanged'' Control.Delegate = new SecureTextFieldDelegate(); '. 'System.InvalidOperationException: Die Ereignisregistrierung überschreibt den vorhandenen Delegaten. Verwenden Sie entweder nur Ereignisse oder Ihren eigenen Delegaten: ExtendedEntryRenderer + SecureTextFieldDelegate UIKit.UITextField + _UITextFieldDelegate'.Muss ich einige Standarddelegaten oder etwas zuerst abmelden? – kspearrin