Frage

Wenn in einem UITextView mehr Text zu schreiben, als in ihm passen vollständig, wird der Text nach oben, und der Cursor wird oft legen sich ein oder zwei Zeilen über der unteren Zeile der Ansicht. Das ist ein bisschen frustrierend, da ich meine Bewerbung will gute Nutzung der gesamten Höhe der Textansicht machen.

Im Grunde, was ich will, ist die UITextView die Konfiguration von bis zu schreiben, um es untersten Teil ist und es nicht nur zu verwenden, zum Scrollen.

Ich habe einige ähnliche Fragen hier und hier . Allerdings habe ich keine richtige Lösung noch nicht gesehen.

Danke

War es hilfreich?

Lösung

Ich habe eine etwas andere Implementierung (Ich mag deaktivieren Scrollen), aber ich hatte auch die Cursor zu stoppen aus meinem UITextView springen. Dazu implementiert ich einen null scrollRectToVisible in meiner UITextView Unterklasse. Wie folgt aus:

- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated
{
// do nothing. This fixes the cursor jumping above the field defect.
}

Andere Tipps

ausgezeichnete Lösung ist in der Unterklasse UITextView Zeilen hinzufügen

-(void) setContentOffset:(CGPoint)contentOffset {
    [self setContentInset:UIEdgeInsetsZero];
    [super setContentOffset:contentOffset];
}

Es ist Arbeit!

verwenden diese

NSRange myRange=NSMakeRange(outPutTextView.text.length, 0);

[outPutTextView scrollRangeToVisible:myRange];

, wenn ich recht verstehe, können Sie

[textView setScrollEnabled:NO];

, um eine Rolle zu deaktivieren. was nicht zu geben, wenn der Cursor den unteren Rand erreicht ... vielleicht ist es nicht gute Lösung ist, aber Sie können einen bestimmten Schwellenwert (maximal Zeichen im [textView text]) und zurück NO in

hinzufügen
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

Delegatmethode von UITextView wenn [[textView text] length] > maxCharacters.

Ich finde, scheinen die Eigenschaft ‚Content‘ kann auch verwendet werden ...

Ich habe die letzte Zeile von SETFRAME bekam:

  1. Sie können SETFRAME , um über eine Zeilenhöhe
  2. Wenn Sie die Bearbeitung, in - (BOOL) textView:shouldChangeTextInRange:replacementText:, Verwendung scrollRangeToVisible:, das Argument selectedRange
  3. Wenn Sie am Ende bearbeiten, SETFRAME auf die ursprüngliche Größe
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top