2016-05-12 3 views
0

bekomme ich den Anfang der Zeile für die aktuelle Cursorposition auf einem UITextViewWie den Beginn der Zeile der aktuellen Position in einem UITextView

Zuerst bekommen mag ich die aktuelle Position zu bekommen, das ist einfach.

let currentPosition = textView.selectedTextRange!.start 

Dann sollte ich die startOfLinePosition mit dieser Methode, aber ich bin nicht sicher, wie der Offset erhalten

let startOfLinePosition = textView.positionFromPosition(currentPosition, inDirection: .Left, offset: ?) 

Wie kann ich die Differential-Offset bekommen?

Antwort

3

Verwenden Sie die tokenizer:

let currentPosition = textView.selectedTextRange!.start 
let startOfLinePosition = textView.tokenizer.positionFromPosition(currentPosition, toBoundary: .Paragraph, inDirection: UITextStorageDirection.Backward.rawValue)! 
+0

Funktioniert prima, aber wenn die Zeile umgebrochen wird, es funktioniert nicht. –

+1

Vielleicht möchten Sie wirklich den Anfang des Absatzes. Ersetzen Sie '.Line' durch' .Paragraph' –

Verwandte Themen