Ich entwickle eine Anwendung, in der der Benutzer einige Informationen schreiben muss. Zu diesem Zweck benötige ich eine UITextField
mehrzeilige (im Allgemeinen UITextField
eine einzeilige).
Als ich googeln ich eine Antwort der Verwendung finden UITextView
statt UITextfield
für diesen Zweck.
ios
uitextfield
uitextview
raaz
quelle
quelle
Antworten:
UITextField
ist speziell nur einzeilig.Ihre Google-Suche ist korrekt. Sie müssen sie
UITextView
anstelle derUITextField
Anzeige und Bearbeitung von mehrzeiligem Text verwenden.Fügen
UITextView
Sie im Interface Builder ein beliebiges hinzu und aktivieren Sie das Kontrollkästchen "Bearbeitbar". Es wird standardmäßig mehrzeilig sein.quelle
Sie können ein UITextField mit UITextView fälschen. Das Problem ist, dass Sie die Platzhalterfunktionalität verlieren.
Wenn Sie eine UITextView verwenden und den Platzhalter benötigen, gehen Sie folgendermaßen vor:
Stellen Sie in Ihrer viewDidLoad Farbe und Text auf Platzhalter ein:
Lassen Sie dann den Platzhalter verschwinden, wenn Ihre UITextView ausgewählt ist:
Stellen Sie nach Abschluss der Bearbeitung sicher, dass ein Wert vorhanden ist. Wenn dies nicht der Fall ist, fügen Sie den Platzhalter erneut hinzu:
Weitere Funktionen, die Sie möglicherweise fälschen müssen:
UITextFields schreiben häufig jeden Buchstaben groß. Sie können diese Funktion zu UITableView hinzufügen:
UITextFields scrollen normalerweise nicht:
quelle
Ok, ich habe es mit einem Trick gemacht;) Erst baue ein
UITextField
und erhöhe essize
wie folgt:Dann baue ein
UITextView
genau in dem Bereich, in dem du mein gemacht hastUITextField
, und lösche esbackground color
. Jetzt sieht es so aus, als hättest du mehrere ZeilenTextField
!quelle
UITextView
. Der Sinn eines UITextField besteht darin, dass es sich anders verhält als einUITextView
.UITextView
undUITextfield
: Sie erben vonUIScrollView
vsUIControl
, standardmäßig nicht bearbeitbar vs. standardmäßig bearbeitbar, mehrzeilig vs. einzeilig, verschiedene Delegatenprotokolle, kein Platzhalter vs. Platzhalter.UITextView
ist für Absätze von Text. Verwenden Sie es, wenn Sie einen Textabschnitt benötigen, und nicht anders.Abgesehen vom mehrzeiligen Verhalten besteht der Hauptunterschied zwischen UITextView und UITextField darin, dass UITextView keinen Platzhalter vorschlägt. Um diese Einschränkung zu umgehen, können Sie eine UITextView mit einem "gefälschten Platzhalter" verwenden.
Weitere Informationen finden Sie in dieser SO-Frage: Platzhalter in UITextView .
quelle
Wenn Sie ein UITextField mit 2 Textzeilen benötigen, können Sie ein UILabel als Unteransicht des UITextField für die zweite Textzeile hinzufügen. Ich habe ein UITextField in meiner App, von dem Benutzer häufig nicht wissen, dass es durch Tippen bearbeitet werden kann, und ich wollte dem UITextField einen kleinen Untertiteltext mit der Aufschrift "Zum Bearbeiten tippen" hinzufügen.
quelle
Ja, ein UITextView ist das, wonach Sie suchen. Sie müssen einige Dinge anders behandeln (wie die Eingabetaste), aber Sie können Text hinzufügen, und Sie können nach oben und unten scrollen, wenn zu viel Text darin enthalten ist.
Dieser Link enthält Informationen zum Erstellen eines Bildschirms zur Dateneingabe:
Erstellen Sie einen Dateneingabebildschirm
quelle
Verwenden Sie UITextView anstelle von UITextField
quelle
Als Ergänzung zur obigen Antwort von h4xxr können Sie die Höhe des UITextFields einfacher anpassen, indem Sie im Attributinspektor-> Textfeld den quadratischen Rahmenstil auswählen. (Standardmäßig ist der Rahmenstil eines UITextfelds Ellipse.)
Referenz: Brian hier beantwortet: Wie stelle ich die UITextField-Höhe ein?
quelle
Es gibt noch eine andere Option, die für mich funktioniert hat:
Unterklasse UITextField und überschreiben:
In dieser Methode können Sie zum Beispiel:
Dieser Code rendert den Text mit so vielen Zeilen wie erforderlich, wenn der Rect genügend Platz hat. Sie können je nach Bedarf jedes andere Attribut angeben.
Verwende nicht:
Dadurch wird das Rendern von einzeiligem Text erzwungen
quelle