2 Stimmen

Umschalten von UITextAutoCorrectionType WENN ein UITextField bearbeitet wird

Ich möchte die Autokorrektur auf der Grundlage des Inhalts des Textfeldes ein- und ausschalten.

Wenn der Benutzer beispielsweise einen Satz wie "Werkzeugmaschinen" eintippt, möchte ich, dass die Autokorrektur eingeschaltet ist (für den Rest der Wörter, die sie eintippen wird), aber wenn ich den Anfang einer Webadresse wie "www.mach.." erkenne, möchte ich die Autokorrektur ausschalten. möchte ich die Autokorrektur ausschalten.

Ich habe versucht, dies beim Empfang der UITextFieldTextDidChangeNotification zu tun, indem ich autoCorrectionType auf dem Textfeld basierend auf dem eingegebenen Inhalt umschalte. Während sich der tatsächliche Wert dieser Eigenschaft auf dem Textfeld ändert (dies wurde mit einem NSLog überprüft), wird das tatsächliche Korrekturverhalten nicht beeinflusst. Wenn also die Autokorrektur zu Beginn der Bearbeitungssitzung aktiviert war, bleibt sie auch dann aktiviert, wenn ich das Textfeld auf UITextAutoCorrectionTypeNo gesetzt habe. So wird "www.foogle..." in "www.google..." korrigiert, was meiner Meinung nach nicht immer wünschenswert ist.

Hat jemand eine Möglichkeit gefunden, die Autokorrektur in einem Textfeld zu aktivieren/deaktivieren (während der Bearbeitung)?

Merci.

6voto

Raphael Schaad Punkte 1649

UITextView muss intern etwas nachladen, was es nicht automatisch tut, also müssen wir es von außen auslösen. Eine Möglichkeit, die ich gefunden habe, ist, zurückzutreten und wieder First Responder zu werden:

[textView resignFirstResponder];
// UITextAutoCorrectionType change
[textView becomeFirstResponder];

Das funktioniert. Denken Sie daran, den ausgewählten Bereich wiederherzustellen.

Raphael

4voto

Shayne Sweeney Punkte 561

Ich war in der Lage [textField reloadInputViews] nach der Einstellung des Autokorrekturtyps.

Beachten Sie, dass dadurch der Zustand der Tastatur zurückgesetzt wird. Wenn Sie Symbole (anstelle von Buchstaben) angezeigt haben, können Sie nach dem Aufruf von reloadInputViews wird die Tastatur auf Buchstaben zurückgesetzt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X