754 Stimmen

Platzhalter in UITextView

Meine Anwendung verwendet ein UITextView . Jetzt möchte ich die UITextView einen Platzhalter zu haben, der dem Platzhalter ähnelt, den Sie für eine UITextField .

Wie kann man das tun?

0 Stimmen

Der TTTextEditor von Three20 (der seinerseits UITextField verwendet) unterstützt sowohl Platzhaltertext als auch das Wachsen nach Höhe (er wird zu einem UITextView).

0 Stimmen

24 Stimmen

Wie wäre es mit der Kategorie UITextView+Placeholder? github.com/devxoul/UITextView-Platzhalter

-1voto

Die einfachste Methode, die Farbe des Platzhaltertexts zu ändern, ist über den XCode Storyboard Interface Builder. Wählen Sie das gewünschte UITextField aus und öffnen Sie den Identitätsinspektor auf der rechten Seite. Klicken Sie auf das Plus-Symbol in den benutzerdefinierten Laufzeitattributen und fügen Sie eine neue Zeile mit Key Path als _placeholderLabel.textColor, Type als Color und Value in der gewünschten Farbe hinzu.

1 Stimmen

Hat nichts mit der Frage zu tun oder gar mit einer UITextView .

-1voto

LLIAJLbHOu Punkte 1263

Einfache Klasse zur Unterstützung von Platzhaltern mit Icon-Attributen in UITextView PlatzhalterTextView

@IBOutlet weak var tvMessage: PlaceholderTextView!
//  TODO: - Create Icon Text Attachment
let icon: NSTextAttachment = NSTextAttachment()
icon.image = UIImage(named: "paper-plane")
let iconString = NSMutableAttributedString(attributedString: NSAttributedString(attachment: icon))

tvMessage.icon = icon

//  TODO: - Attributes
let textColor = UIColor.gray
let lightFont = UIFont(name: "Helvetica-Light", size: tvMessage.font!.pointSize)
let italicFont = UIFont(name: "Helvetica-LightOblique", size: tvMessage.font!.pointSize)

//  TODO: - Placeholder Attributed String
let message = NSAttributedString(string: " " + "Personal Message", attributes: [ NSFontAttributeName: lightFont!,   NSForegroundColorAttributeName: textColor])
iconString.append(message)
// TODO: - Italic Placeholder Part
let option = NSAttributedString(string: " " + "Optional", attributes: [ NSFontAttributeName: italicFont!, NSForegroundColorAttributeName: textColor])
iconString.append(option)

tvMessage.attributedPlaceHolder = iconString

tvMessage.layoutSubviews()

Empty With text

-4voto

Andrea F Punkte 721

Ich war in der Lage zu tun, fügen Sie einen "Platzhalter" zu einem UITextView mit ALOT weniger Code. Dies ist, was ich tat:

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(60, 800, 200, 60)];
textView.text = @"Write characters here...";
textView.textColor=[UIColor grayColor];
textView.font = [UIFont fontWithName:@"Hevlatica" size:15];
textView.delegate=self;

Ich schätze, es ist kein echter Platzhalter, weil man den Text vor dem Schreiben löschen muss, aber es könnte helfen, wenn man etwas Einfacheres will.

0 Stimmen

Ich denke, dass diese Antwort zu Unrecht heruntergestuft wird. Dies ist eine wirklich saubere und clevere Lösung. Außerdem ist das Überschreiben von drawRect eine ziemlich teure Operation. Auch wenn mehr Code erforderlich ist, um die Textansicht bei der Größenänderung auszublenden und möglicherweise zu verschieben, denke ich, dass es den Leistungsgewinn wert ist.

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