【问题标题】:Get current paragraph in UITextView?在 UITextView 中获取当前段落?
【发布时间】:2016-03-02 00:21:56
【问题描述】:

我想检测当前段落,这是我目前的代码,但效果不太好。假设我有 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
            }
        }

    }

}

【问题讨论】:

    标签: string swift uitextview nsrange paragraphs


    【解决方案1】:

    听起来你需要NSStringparagraphRangeForRange:方法:

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

    【讨论】:

    • 听起来不错,让我试试 :)
    猜你喜欢
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 2016-09-20
    • 2016-11-12
    • 1970-01-01
    相关资源
    最近更新 更多