Wie kann ich ein UITextRange
Objekt in ein NSRange
konvertieren? Ich habe viele SO-Posts über die andere Richtung gesehen, aber das ist das Gegenteil von dem, was ich brauche. Ich verwende die UITextRange
selectedTextRange
, die eine Eigenschaft von UITextView
ist. Es gibt eine UITextRange
zurück, aber ich brauche eine Reichweite.Konvertieren selectedTextRange UITextRange in NSRange
18
A
Antwort
41
Sie brauchen etwas wie folgt aus:
- (NSRange) selectedRangeInTextView:(UITextView*)textView
{
UITextPosition* beginning = textView.beginningOfDocument;
UITextRange* selectedRange = textView.selectedTextRange;
UITextPosition* selectionStart = selectedRange.start;
UITextPosition* selectionEnd = selectedRange.end;
const NSInteger location = [textView offsetFromPosition:beginning toPosition:selectionStart];
const NSInteger length = [textView offsetFromPosition:selectionStart toPosition:selectionEnd];
return NSMakeRange(location, length);
}
4
UITextView
eine Eigenschaft hat
@property(nonatomic) NSRange selectedRange;
5
Hier ist eine Swift-Erweiterung auf die Antwort anhand von Vitaly S.
extension UITextInput {
var selectedRange: NSRange? {
guard let range = self.selectedTextRange else { return nil }
let location = offsetFromPosition(beginningOfDocument, toPosition: range.start)
let length = offsetFromPosition(range.start, toPosition: range.end)
return NSRange(location: location, length: length)
}
}
Verwandte Themen
- 1. Wie wähle ich einen Text in einem TextView mit einem NSRange in Swift aus?
- 2. Behandlung von NSRange in UITableViewCell
- 3. Problem mit NSRange
- 4. Problem mit NSRange in Objective-C?
- 5. Wie nehme ich NSRange in swift?
- 6. Warum akzeptiert XCTAssertEqual NSRange nicht als Argumente, auch nachdem ich "==" für NSRange hinzugefügt habe?
- 7. NSRange: range.location! = NSNotFound vs. range.length> 0
- 8. Löschen einer Unterzeichenfolge bei einem NSRange
- 9. Wie erstelle ich einen statischen NSRange?
- 10. Core Text - Get Pixel Koordinaten von NSRange
- 11. Wie erstellt und verwendet Temp NSRange in lldb?
- 12. Erstelle einen NSRange mit einem gegebenen minimalen und maximalen Wert
- 13. Wie wird ein ganzzahliger Wert aus NSRange gezogen?
- 14. Wie verwende ich NSRange oder NSMax X mit NSRect?
- 15. Objective C wie bekomme ich den numerischen Wert einer UITextPosition
- 16. Setze die Cursorposition in einem UITextField (Monotouch)
- 17. So erhalten Sie einen ausgewählten Bereich von Text aus einem UITextView oder UITextField
- 18. Unter Verwendung der Strecke <Index> mit NSRange in der NSAttributedString API
- 19. Wie speichere ich einen NSRange in einem NSMutableArray oder einem anderen Container?
- 20. IIF in CASE konvertieren - Hilfebericht konvertieren
- 21. HTML in XAML konvertieren
- 22. PDF in HTML konvertieren
- 23. RBG in HEX konvertieren
- 24. Dict in String konvertieren
- 25. Ansichten in Teilansichten konvertieren
- 26. Konvertieren Zeichenfolge in char
- 27. PDF in FixedDocument konvertieren
- 28. Konvertieren Zeichenfolge in CLLocationCoordinate2D
- 29. "document.getElementById" in jQuery konvertieren
- 30. WsHttpBinding in customBinding konvertieren
Dies gilt nicht Beantworten Sie die Frage des OP. Es gibt berechtigte Gründe, warum Sie von 'UITextRange' in' NSRange' konvertieren müssen. – Stunner
Auch existiert es nicht in swift – Daniel
Arbeit für mich.THX – Jerome