Hinzufügen eines nicht editierbaren Text-Suffix zu einem UITextField

8

Ich habe ein UITextField, dem ich ein "?" Suffix für alle eingegebenen Texte.

Der Benutzer sollte nicht in der Lage sein, dieses "?" oder füge Text auf der rechten Seite hinzu.

Was ist der beste Weg, dies zu tun?

    
Glen T 27.11.2011, 19:17
quelle

9 Antworten

2

Sie müssen wahrscheinlich UITextField von der Unterklasse trennen und die Methode drawText: überschreiben, um ein zusätzliches "?" Zeichen rechts neben dem eigentlichen Text. (Anstatt tatsächlich ein "?" Zum Text der Ansicht hinzuzufügen.

    
Jesse Rusak 27.11.2011, 19:22
quelle
4

Verwenden Sie das Protokoll UITextFieldDelegate , um die Zeichenfolge bei jedem Feld zu ändern bearbeitet werden. Hier ist ein kurzer Stich; Das wird Arbeit brauchen, aber es sollte dir helfen.

%Vor%     
Josh Caswell 27.11.2011 20:20
quelle
1

Ich hatte dieses Problem und schrieb eine Unterklasse, um diese Funktionalität hinzuzufügen: Ссылка . Hoffentlich haben Sie jetzt eine Lösung gefunden, aber falls nicht, sollte das funktionieren.

    
Sam Baumgarten 02.01.2013 00:36
quelle
0

Für ein einzeiliges UITextField sollten Sie in der Lage sein, die Größe des NSString zu messen (es hat irgendwo eine Messfunktion) und ein UILabel an die richtige Position zu bewegen.

    
Tom van der Woerdt 27.11.2011 19:22
quelle
0

Ich würde eine Methode hinzufügen, die aufgerufen wird, wenn die Bearbeitung beendet ist:

%Vor%     
Garoal 27.11.2011 20:03
quelle
0

Ich weiß, diese Antwort zu spät ist, aber ich fand die meisten von ihnen nicht für mein Szenario nicht funktioniert. Ich habe eine UITextField, dass ich einfach zwingen will ein Suffix zu haben, die der Benutzer nicht bearbeiten kann. Aber ich will nicht UITextView Unterklasse, modifizieren, wie es Zeichnung Griff, etc. Ich möchte nur den Benutzer verhindern, dass das Suffix zu ändern.

Zuerst vergewissere ich mich, dass das Suffix im Textfeld gesetzt ist, wenn die Bearbeitung stattfindet. Dies könnte auf verschiedene Arten geschehen, abhängig von Ihrem Szenario. Für meine, wollte ich es von Anfang an, also habe ich gesetzt einfach den Text-Eigenschaft des Textfeld mit dem Suffix gleich, wenn die Ansicht Lasten und die Länge des Suffix für später speichern aus. Zum Beispiel:

%Vor%

Dann habe ich die UITextFieldDelegate Protokoll als Josh oben vorgeschlagen, aber verwenden die Länge der Zeichenfolge und der Bereich, um nichts sicherzustellen, bearbeitet das Suffix:

%Vor%

Dies sollte für jeden Suffixwert funktionieren, den Sie dem Textfeld zuweisen.

    
ruttopia 30.04.2014 01:00
quelle
0

Diese Klassenmethode, die ich in Objective-C geschrieben habe, hilft Ihnen, einem UITextField einen Suffixtext hinzuzufügen. Um es funktionieren zu lassen, müssen Sie UILabel auf das Präfix oder Suffix in Ihrem UITextFieldLabel wie folgt initialisieren:

%Vor%

Sobald wir UILabel an UITextField angehängt haben, können Sie diese Methode verwenden, um den Text zu aktualisieren, und dieser Text wird automatisch so angepasst, dass er in das Feld passt.

%Vor%     
jalopezsuarez 29.10.2014 11:02
quelle
0

Ich habe die folgende Methode geschrieben, um die obige Aufgabe zu erreichen, ein nicht editierbares Suffix auf UITextField zu setzen:

%Vor%     
Nikhil Gupta 05.09.2016 06:48
quelle
-1

OK, ich bin definitiv zu spät, aber vielleicht kann ich jemandem auf die eine oder andere Weise helfen: Der beabsichtigte Weg, dies zu erreichen, ist mit einem benutzerdefinierten NSFormatter. Heres die Dokumente: Ссылка

Die Grundidee ist folgende: Sie erstellen eine Unterklasse von NSFormatter und überschreiben mindestens die beiden Worker-Methoden:

%Vor%

Dies erzeugt den Dipsplay-String aus dem Wert, der im Objekt gespeichert ist (d. h., fügen Sie hier Ihren Fragezeichen hinzu)

%Vor%

Hier müssen Sie die Anzeigezeichenfolge in ein Objekt umwandeln, das Sie speichern möchten, d. h. entfernen Sie das Fragezeichen

Der Formatierer kann dann verwendet werden, um die Daten von den gespeicherten Objekten in Zeichenfolgen umzuwandeln, die für die Präsentation für den Benutzer geeignet sind. Der große Vorteil ist, dass Sie Formatierer überall dort verwenden können, wo Ihre Zeichenfolge in der Benutzeroberfläche angezeigt wird. Es ist nicht auf bestimmte UI-Elemente wie die Lösung beschränkt, bei der Sie in UITextField den Text -drawText außer Kraft setzen. Es ist nur hella bequem.

    
katzenhut 09.10.2013 11:15
quelle