首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在NSTextStorage中重置属性

如何在NSTextStorage中重置属性
EN

Stack Overflow用户
提问于 2014-11-28 20:36:34
回答 1查看 556关注 0票数 3

我正在尝试为iOS编写文本解析器。我有一些用于粗体、斜体、突出显示等的语法。我在UITextView中设置了一个带有NSTextStorage实例的语法,以监视更改并设置正确的属性。如果我用文本预加载UITextView,它会工作得很好。

然而,当我打字的时候,假设我输入了这样的东西

代码语言:javascript
复制
==a==

它工作得很好,突出显示它是黄色的,一切都很好。但是,如果我将光标放在最后一个==旁边,然后开始键入以创建如下所示:

代码语言:javascript
复制
==a==hello my name is...

然后文本的其余部分也会被高亮显示。

我知道我使用的正则表达式不是问题,因为如果我用文本预先填充UITextView,它就会正确地解析它。

问题:,所以我需要帮助的是将当前光标位置重置为无文本属性。我不知道如何做到这一点,因为如果它在文本视图的末尾,我就不能前进,因为我会得到一个NSRangeException

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-28 20:57:51

我知道了,您要做的是在delegate for UITextView中实现textViewDidChange:方法并设置typingAttributes

如下所示:

代码语言:javascript
复制
- (void)textViewDidChange:(UITextView *)textView {
    textview.typingAttributes = @{...};
}

现在,每次文本更新时,它都会重置为默认属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27195582

复制
相关文章

相似问题

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