Wie kann die Anzahl der Zeilen in UITextView eingeschränkt werden?

7

Ich habe eine UITextView in meinem Bildschirm, der Benutzer sollte nur zwei Zeilen ausfüllen, und wenn der Benutzer in der zweiten Zeile der Return-Taste sollte in Fertig .

Wie kann ich die Anzahl der Zeilen in UITextView begrenzen? Ich habe viel gesucht, und keine Ergebnisse waren nützlich!

Ich fand diese Antwort für Swift:

%Vor%

Es hat nicht funktioniert, auf diese Weise kann der Benutzer unendlich Zeichen eingeben, aber was auf dem Bildschirm angezeigt wird, sind nur zwei Zeilen!

Wenn Sie also versucht haben, den Text von textView zu drucken, finden Sie einen Disaster-Text.

    
Rawan 01.10.2015, 13:57
quelle

6 Antworten

13

Sie müssen textView:shouldChangeTextInRange:replacementText: implementieren. Diese Methode wird immer dann aufgerufen, wenn sich der Text ändert. Mit der Eigenschaft text können Sie auf den aktuellen Inhalt der Textansicht zugreifen.

Konstruieren Sie den neuen Inhalt aus dem übergebenen Bereich und dem Ersetzungstext mit [textView.text stringByReplacingCharactersInRange:range withString:replacementText] .

Sie können dann die Anzahl der Zeilen zählen und YES zurückgeben, um der Änderung zu erlauben, oder NO , um sie abzulehnen.

BEARBEITEN: Auf OP-Anfrage:

%Vor%     
Abhinav 01.10.2015, 14:04
quelle
10

Für iOS 7 +

%Vor%

ODER

%Vor%     
Rahul Shirphule 01.10.2015 14:25
quelle
0

Das ist @Abhinav Antwort, aber in Swift

%Vor%     
Rawan 01.10.2015 14:54
quelle
0

Falls jemand die Anzahl der Zeilen in Echtzeit möchte, so machen Sie das mit RxSwift & amp; RxCocoa

%Vor%     
Deaconu Dan Andrei 10.05.2016 09:15
quelle
0

Dies ist die Antwort von @ Abhinav, die für Swift 3

aktualisiert wurde %Vor%

Dabei ist maxLines die Anzahl der Zeilen, auf die Sie textView beschränken möchten. Wenn es 0 ist, dann unbegrenzte Anzahl von Zeilen.

    
gogoslab 11.04.2018 10:10
quelle
-3

Finden Sie unten die Objective-C-Version von Abhinavs Antwort:

%Vor%     
Vishwas Singh 08.03.2016 17:13
quelle

Tags und Links