gpt4 book ai didi

cocoa - NSTextView高亮显示

转载 作者:行者123 更新时间:2023-12-03 16:58:37 26 4
gpt4 key购买 nike

在我为 Mac OSX 构建的产品中,我需要支持 10.5、10.6 和 10.7。我正在使用 NSTextView 作为编辑器。我用它来显示文本和图像。我有一个关于突出显示的要求。这必须像 MS Word 一样工作。在 MS Word 中,您可以选择一个范围并将其更改为黄色。

我使用 setMarkedTextAttributes: 做了同样的事情,但这对于内联图像不起作用。所以我尝试使用 LayoutManager 并设置背景颜色,但它似乎也不起作用。

关于突出显示的附加点是切换,因此如果我选择相同范围的文本并再次突出显示它,它应该不会突出显示。为此,我将所有 NSRange 存储在列表中并检查它是否已突出显示。我觉得我做错了什么。所以我试图获取 NSRect 然后应用颜色可能是?

最佳答案

在 NSAttributedString 中设置该范围的背景颜色:

NSMutableAttributedString *mattrstg = [textView textStorage];
[mattrstg addAttribute:NSBackgroundColorAttributeName value:colorHighlighter range:range];

现有的属性将是您对已突出显示和尚未突出显示的内容的记录。因此,要切换突出显示,您可以执行以下操作

[mattrstg enumerateAttribute:NSBackgroundColorAttributeName 
inRange:rangeToChange
options:0 usingBlock:^(id value, NSRange range, BOOL *stop) {
if (value) {
[mattrstg removeAttribute:NSBackgroundColorAttributeName range:range];
} else {
[mattrstg addAttribute:NSBackgroundColorAttributeName value:colorHighlighter range:range];
}
}];

关于cocoa - NSTextView高亮显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10356051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com