我有一个解析器,该解析器使用字符串的unicodeScalars视图来计算索引。根据解析器的结果。
我有一个NSTextView
,我想根据分析器的结果将插入符号放在其中。不幸的是,NSTextView的selectedRange
期望使用字符索引而不是unicodeScalar索引。
如何将索引从unicodeScalars转换为Characters?
答案 0 :(得分:1)
不同的字符串视图共享一个公用的String.Index
,并且NSRange(_:in:)
可用于将String
范围转换为NSRange
(这是selectedRange
所需要的)。示例:
let str = "abcde"
if let idx = str.unicodeScalars.firstIndex(of: "") {
let nsRange = NSRange(idx...idx, in: str)
print(nsRange) // {6, 2}
print((str as NSString).substring(with: nsRange)) //
}