Ich habe ein UITextField, das mit dem Storyboard erstellt wurde. Ich möchte dem Benutzer nicht erlauben, die Position des Cursors zu ändern und sie immer am Ende des Textes in das Textfeld zu halten.
Ich habe versucht, die Position des Cursors beim Touchdown-Ereignis zu ändern, aber wenn ich das Textfeld auswähle und dann die Position des Cursors durch erneutes Berühren des Textfelds ändere, wird die Position geändert:
%Vor%Kennt jemand eine Lösung? Danke
Ok, was Sie tun müssen, ist ein UITextField, das versteckt ist.
Fügen Sie das verborgene Textfeld zur Ansicht hinzu und rufen Sie dort findFirstResponder auf. Von Ihrer amountBoxTouchDown:
Methode.
Nehmen Sie im Textfield-Delegaten den Text, den der Benutzer eingegeben hat, und fügen Sie ihn zu amountBox.text
hinzu. Deaktivieren Sie auch userInteractionEnabled
für das sichtbare mengeBox textField.
Dies erzeugt den gewünschten Effekt.
Sehen Sie sich den Beispielcode Link an.
Denken Sie in Ebenen und Steuerelementen als Werkzeuge, die Sie kombinieren können, um Funktionalität zu erreichen.
Wenn Sie einfach einen UIButton über einem UITextField platzieren und den Schaltflächentyp auf "Custom" ändern, können Sie alle Berührungsereignisse im Textfeld verhindern, z. B. den Cursor bewegen, Text auswählen, kopieren, ausschneiden und einfügen.
Standardmäßig ist eine benutzerdefinierte Schaltfläche transparent.
Erstellen Sie eine Aktion, sodass beim Berühren der Schaltfläche das Textfeld zum ersten Responder wird.
Deaktivieren Sie alle Gestenerkenner in dem Textfeld, nachdem es zum Ersthelfer geworden ist. Dies ermöglicht es, die anfängliche Anzapfung zu empfangen, verhindert jedoch, dass der Benutzer mit dem Feld interagiert, während es der Ersthelfer ist. Dies hält das Systemverhalten davon aufrecht, den Cursor am Ende des Textes zu halten, ohne dass der Benutzer es überschreiben kann.
Fügen Sie in einer UITextField-Unterklasse Folgendes hinzu:
SWIFT 3.1:
%Vor%Ändern Sie in Ihrem Storyboard die Klasse Ihres Textfelds in Ihre UITextField-Unterklasse.
Erweiterung der @ kas-kad Lösung. Ich habe mit diesem
eine Unterklasse von UITextView erstellt %Vor%Tags und Links objective-c iphone ios