string - 获取 UITextView 中的当前段落?

标签 string swift uitextview nsrange paragraphs

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

    }

}

最佳答案

听起来你需要 NSStringparagraphRangeForRange: 方法:

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

关于string - 获取 UITextView 中的当前段落?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35664039/

相关文章:

ios - 当 UITextField 文本更改时,UIScrollView 滚动到底部

java - ListView 到字符串数组

javascript - 在 witt 的最后...... Javascript 不会取代 '\n' !

php - 使用_GET的PHP变量语法

ios - Swift - 从 viewController 访问 AppDelegate 窗口

ios - 如何创建选中中心单元格的 UICollectionView?

php - 如何捕获字符串中包含分隔符的部分?

ios - 当参与者快速加入时,不会调用 ooVooAVChatDelegate

ios - TextView 文本超出 TextArea

iphone - 如何根据 objective-c 中的内容设置UITextView的高度