Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex NSTextView上的方法setTextColor:range:的速度慢得可笑_Regex_Macos - Fatal编程技术网

Regex NSTextView上的方法setTextColor:range:的速度慢得可笑

Regex NSTextView上的方法setTextColor:range:的速度慢得可笑,regex,macos,Regex,Macos,我正在MacOSX中创建一个简单的编辑器,我的编辑器需要对代码进行一些突出显示,例如注释 我正在使用Regex查找所有评论,我最初认为这些评论速度很慢。事实证明,它的工作相当出色。例如,对于387条注释,正则表达式只需“0.008404”s即可找到它们并返回NSRanges数组 但灾难来了。当我尝试使用方法setTextColor:range:为文本设置不同的颜色时,它完成得非常慢。它需要额外的9.872964秒(对于我前面提到的387条评论),当评论数量增加时,它会变得非常糟糕 所以。。。有什

我正在MacOSX中创建一个简单的编辑器,我的编辑器需要对代码进行一些突出显示,例如注释

我正在使用Regex查找所有评论,我最初认为这些评论速度很慢。事实证明,它的工作相当出色。例如,对于387条注释,正则表达式只需“0.008404”s即可找到它们并返回NSRanges数组

但灾难来了。当我尝试使用方法
setTextColor:range:
为文本设置不同的颜色时,它完成得非常慢。它需要额外的9.872964秒(对于我前面提到的387条评论),当评论数量增加时,它会变得非常糟糕


所以。。。有什么方法可以更快地做到这一点吗?也许是用
NSAttributedString
s

我真的很抱歉,伙计们,stackoverflow给了我关于类似问题的建议(我在搜索时没有找到)

事实证明,您只需告诉NSTextViews TextStorage您将开始进行一些编辑。完成后,您将提交这些更改。代码如下所示:

[textView.textStorage beginEditing];
// do some stuff here
[textview.textStorage endEditing];
现在我用456条注释运行代码,正则表达式需要0.013887 s和着色0.215761 s,这是惊人的下降

不管怎样,我希望有人会觉得这很有用