2

我想要做的是拥有一个 NSTextView 并向其添加自定义 NSView 子视图,但拥有它以便文本可以围绕子视图布局。

现在,我可以轻松地将子视图添加到文本视图,但当然,它进入文本视图并且文本不知道子视图,所以它只是在子视图上方/下方运行。当然不是我想要的。

所以我希望能够至少在“块”中添加我自己的视图(比如当 HTML 元素是块元素时,所以它在自己的行上),也可能是“内联”(即子视图与文本一致,就像 HTML 元素如何内联一样)尽管这不是绝对必需的。

我不太清楚如何使这项工作。我看到可以将内容添加到文本视图的唯一方法是使用文本附件,但这些似乎仅归入图像/文件,并且仅在不包含(据我所知)任意 NSView 的 NSCell 中。

我觉得这应该是可能的,我从哪里开始?

4

1 回答 1

2

我知道这个问题发布已经有一段时间了,但我最近遇到了同样的问题,发现解决方案非常简单。

只需将排除路径附加到NSTextView's 容器,这在 Swift 中是这样完成的:

// Where 'subview' is the view you would like to avoid drawing text over
let exclusionPath = NSBezierPath(rect: subview.frame)
self.textContainer?.exclusionPaths.append(exclusionPath)
于 2018-12-05T22:16:32.033 回答