String 是否在UITextView中获取当前段落?

String 是否在UITextView中获取当前段落?,string,swift,uitextview,nsrange,paragraphs,String,Swift,Uitextview,Nsrange,Paragraphs,我想检测当前段落,到目前为止这是我的代码,但效果不太好。假设我有3个段落,当光标位于它们之间时,它会选择下一个段落,这是不对的。有更好的方法吗 使用这段代码,我想检测当前段落,然后更改该段落的字体,然后继续使用该字体写作 func textViewDidChangeSelection(textView: UITextView) { // print("selected") //stylesDefaults() var arr = [String]() compo

我想检测当前段落,到目前为止这是我的代码,但效果不太好。假设我有3个段落,当光标位于它们之间时,它会选择下一个段落,这是不对的。有更好的方法吗

使用这段代码,我想检测当前段落,然后更改该段落的字体,然后继续使用该字体写作

func textViewDidChangeSelection(textView: UITextView)
{

   // print("selected")
    //stylesDefaults()
    var arr = [String]()

    composeTextView.text.enumerateSubstringsInRange(Range(start: composeTextView.text.startIndex, end: composeTextView.text.endIndex), options: NSStringEnumerationOptions.ByParagraphs,
        { (substring, substringRange, enclosingRange, bool) -> () in arr.append(substring!)
    })

    if(composeTextView.text.characters.count != 0)
    {
        self.titleTextField.text = arr[0]
    }

    let currentRange : NSRange = composeTextView.selectedRange
    var charCounter : Int = 0
    var found : Bool = false
    for (var i = 0; i < arr.count; i++)
    {
        charCounter = charCounter + arr[i].characters.count
        if found == false
        {
            if(charCounter > currentRange.location)
            {
                print(arr[i])
                found = true
            }
        }

    }

}
func textViewDidChangeSelection(textView:UITextView)
{
//打印(“选定”)
//stylesDefaults()
var arr=[String]()
composeTextView.text.EnumerateSubstringsRange(范围(开始:composeTextView.text.startIndex,结束:composeTextView.text.endIndex),选项:NSStringEnumerationOptions.By段落,
arr.append(substring!)中的{(substring,substringRange,enclosuringrange,bool)->()
})
if(composeTextView.text.characters.count!=0)
{
self.titleTextField.text=arr[0]
}
让currentRange:NSRange=composeTextView.selectedRange
var charCounter:Int=0
发现变量:Bool=false
对于(变量i=0;icurrentRange.location)
{
打印(arr[i])
找到=真
}
}
}
}

听起来您需要
NSString
段落RangeforRange:
方法:

let composeText = composeTextView.text as NSString
let paragraphRange = composeText.paragraphRangeForRange(composeTextView.selectedRange)
print(composeText.substringWithRange(paragraphRange))

听起来不错,让我试试:)