我的英语很糟糕,我不知道该怎么形容。
请看我先上传的图片。这是尤利西斯的截图。
这应该是一个 NSTextView 控件。选中所有文本后,我发现它可以控制特定段落的左侧偏移量。
我试着模仿它。
但是我发现NSMutable Paragraph Style好像并没有达到这样的效果,只能达到类似下图的效果。
简单来说,就是想要实现上一张图的效果,但只有第二张图的效果。
又看了一个问题,不过主要是关于背景色的,想知道缩进的问题,这样才能得到更多的结果。
Ulysses 是如何实现的?
我的英语很糟糕,我不知道该怎么形容。
请看我先上传的图片。这是尤利西斯的截图。
这应该是一个 NSTextView 控件。选中所有文本后,我发现它可以控制特定段落的左侧偏移量。
我试着模仿它。
但是我发现NSMutable Paragraph Style好像并没有达到这样的效果,只能达到类似下图的效果。
简单来说,就是想要实现上一张图的效果,但只有第二张图的效果。
又看了一个问题,不过主要是关于背景色的,想知道缩进的问题,这样才能得到更多的结果。
Ulysses 是如何实现的?
fillBackgroundRectArray(_: count:forCharacterRange:color:)
您可以通过在子类中覆盖来修改选择的绘图矩形NSLayoutManager
。
class MyLayoutManager: NSLayoutManager {
override func fillBackgroundRectArray(_ rectArray: UnsafePointer<NSRect>, count rectCount: Int, forCharacterRange charRange: NSRange, color: NSColor) {
// selection rects to draw a highlight.
var rects: [NSRect] = Array(UnsafeBufferPointer(start: rectArray, count: rectCount))
// modify rects here...
// call super and pass in your custom rects array.
super.fillBackgroundRectArray(&rects, count: rectCount, forCharacterRange: charRange, color: color)
}
}
你可以实现这样的目标:
顺便说一句,您可以使用以下方法替换文本视图的布局管理器:
textView.textContainer?.replaceLayoutManager(MyLayoutManager())