如何从 Swift 中的 NSTextView 获取选定的字符串?

Cue*_*Cue 1 xcode cocoa nstextview swift macos-sierra

如何从 Swift 中的 NSTextView 获取选定的字符串?

// 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)
Run Code Online (Sandbox Code Playgroud)

也许我必须添加一个中间步骤,获取完整的字符串,然后对其应用范围?

D. *_*ika 5

关于什么

let str = mainTextField.text.substring(with: range)
Run Code Online (Sandbox Code Playgroud)

编辑:

这现在应该可以工作:

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:)
Run Code Online (Sandbox Code Playgroud)