首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在UITextView中获取当前段落吗?

在UITextView中获取当前段落吗?
EN

Stack Overflow用户
提问于 2016-02-27 00:14:44
回答 1查看 961关注 0票数 5

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

使用此代码,我希望检测当前段落,然后更改该段落的字体,然后继续使用该字体编写。

代码语言:javascript
复制
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
            }
        }

    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-01 16:15:05

听起来你需要NSStringparagraphRangeForRange:方法:

代码语言:javascript
复制
let composeText = composeTextView.text as NSString
let paragraphRange = composeText.paragraphRangeForRange(composeTextView.selectedRange)
print(composeText.substringWithRange(paragraphRange))
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35664039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档