Wie beschränken Sie die Anzahl der Zeilen in der UITextView?
Ich habe einen UITextView in meinem Bildschirm, die Benutzer zu erfüllen, zwei Linien, und wenn der Benutzer in der zweiten Zeile die return-Taste sollte wiederum in Getan.
Wie kann ich das begrenzen der Anzahl der Linien in UITextView?
Ich suchte eine Menge und keine Ergebnisse nützlich war!
Ich fand diese Antwort für Swift:
locationNoteTextView.textContainer.maximumNumberOfLines = 2
self.locationNoteTextView.textContainer.lineBreakMode = NSLineBreakMode.ByClipping
Es hat nicht funktioniert, auf diese Weise kann der Benutzer eingeben, infinity-Charakter, aber das, was auf dem Bildschirm angezeigt werden nur zwei Zeilen!
Also, wenn Sie haben versucht zu drucken, den text der textView finden Sie eine disaster text.
- FYI, ich versuchte es !!!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie implementieren
textView:shouldChangeTextInRange:replacementText:
. Diese Methode wird aufgerufen, wenn die text zu ändern. Sie können den Zugriff auf die aktuellen Inhalte der text-Ansicht mit der Eigenschaft text.Erstellen der neuen Inhalte aus dem übergebenen range-und Ersatz-text mit
[textView.text stringByReplacingCharactersInRange:range withString:replacementText]
.Können Sie dann die Anzahl der Zeilen und zurück
YES
zu ermöglichen, die änderung oder dieNO
ablehnen.EDIT: Auf OP-Anfrage:
Swift:
Obj-C
Für iOS 7+
ODER
Falls jemand will Echtzeit-line-Reihe zählen, das ist, wie man es mit RxSwift & RxCocoa
dies ist @Abhinav Antwort, aber in Swift
dies ist @Abhinav Antwort aktualisiert Swift 3
Wo maxLines ist die Anzahl der Linien, die Sie begrenzen möchten den textView zu. Wenn es 0 ist, dann unbegrenzte Anzahl von Zeilen.
Nachfolgend finden Sie die Objective-C version von Abhinav Antwort: