[swift]在 UITextView 中获取当前段落?

标签: UITextView Swift
发布时间: 2016/5/8 16:01:53
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想要检测到当前段落,这是我的代码到目前为止,但事情不是那么好。让我们说,我有 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
            }
        }

    }

}

解决方法 1:

听起来你需要 NSStringparagraphRangeForRange: 方法 ︰

let composeText = composeTextView.text as NSString
let paragraphRange = composeText.paragraphRangeForRange(composeTextView.selectedRange)
print(composeText.substringWithRange(paragraphRange))
官方微信
官方QQ群
31647020