2017-03-08 1 views
0

Wie wird die ausgewählte Zeichenfolge aus einer NSTextView in Swift abgerufen?Wie wird die ausgewählte Zeichenfolge aus einer NSTextView in Swift abgerufen?

// create a range of selected text 
let range = mainTextField.selectedRange() 

// this works but I need a plain string not an attributed string 
let str = mainTextField.textStorage?.attributedSubstring(from: range) 

Vielleicht muss ich einen Zwischenschritt hinzufügen, wo ich die vollständige Zeichenfolge erhalten und dann den Bereich auf sie anwenden?

+0

http: // Stackoverflow. com/questions/14024124/get-selection-highlighted-text-string -from-nstextview-objective-c –

+0

Danke Mitesh, aber ich programmiere in Swift nicht in Objective-C. – Cue

Antwort

1

Was

über
let str = mainTextField.text.substring(with: range) 

Edit:

Dies sollte jetzt arbeiten:

let range = mainTextField.selectedRange()  // Returns NSRange :-/ (instead of Range) 
let str = mainTextField.string as NSString? // So we cast String? to NSString? 
let substr = str?.substring(with: range)  // To be able to use the range in substring(with:) 
+0

Danke, funktioniert gut. – Cue

0

Dieses für Sie hilfreich sein können:

let textView = NSTextView(frame: NSMakeRect(0, 0, 100, 100)) 
let attributes = [NSForegroundColorAttributeName: NSColor.redColor(), 
       NSBackgroundColorAttributeName: NSColor.blackColor()] 
let attrStr = NSMutableAttributedString(string: "my string", attributes: attributes) 
let area = NSMakeRange(0, attrStr.length) 
if let font = NSFont(name: "Helvetica Neue Light", size: 16) { 
    attrStr.addAttribute(NSFontAttributeName, value: font, range: area) 
    textView.textStorage?.appendAttributedString(attrStr) 
} 
+0

Danke Mitesh, sehr nützlich, um diese Code-Schnipsel in meiner Toolbox zu haben! – Cue

Verwandte Themen