osx – NSAttributedString高亮/背景颜色之间显示行(丑陋)

我试图很好地显示NSTextView中突出显示的段落.现在,我通过创建一个带有背景颜色的NSAttributedString来做到这一点.这里有一些简化的代码
NSDictionary *attributes = @{NSBackgroundColorAttributeName:NSColor.greenColor};
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"Here is a single line of text with single spacing" attributes:attributes];

[textView.textStorage setAttributedString:attrString];

这种方法基本上起作用,因为它产生突出显示的文本.

不幸的是,当多行存在时,除了线条本身之外,突出显示线之间的垂直空间,导致了丑陋.

有人知道在Cocoa这样的突出表现方式吗?下面的图片基本上是我正在寻找的(忽略白盒子上的阴影):

我会愿意使用CoreText,html或任何必要的东西,使事情看起来更好.

解决方法

您将需要对NSLayoutManager进行子类化并覆盖:
- (void)fillBackgroundRectArray:(const CGRect *)rectArray
                      count:(NSUInteger)rectCount
          forCharacterRange:(NSRange)charRange
                      color:(UIColor *)color;

这是绘制背景颜色矩形的原始方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Mip是什么意思以及作用有哪些
怎么测试Mip页面运行情况
MIP安装的具体步骤有哪些
HTML添加超链接、锚点的方法及作用详解(附视频)
MIP的规则有哪些
Mip轮播图组件中的重要属性讲解
Mip的内联框架组件是什么
怎么创建初始的MIP配置及模板文件
HTML实现多选框及无法提交多数据的原因分析(附视频)
HTML如何设置复选框、单选框以及默认选项?(图文+视频)
怎么使用MIP组件
Div垂直居中效果怎么实现
HTML如何实现视频在线播放
如何使用Mip代码校验工具
Mip中弹出层组件是什么
如何用HTML实现简单按钮样式
Mip中快速回顶组件怎么用
Div内容居中效果如何实现
Div水平居中效果怎么实现
Mip中列表组件怎么用