我要做的是拥有一个NSTextView并为其添加自定义NSView子视图,但是要有它,以便文本可以围绕子视图进行布局。
现在,我可以轻松地在textview中添加子视图,但当然,这会进入textview,而文本则不知道子视图,所以它只是在子视图上方/下方运行。当然不是我想要的。
所以我希望能够至少在“块”中添加我自己的视图(比如当一个HTML元素是一个块元素,所以它在它自己的行上),也可能是“内联”(那个)是一个与文本一致的子视图,就像HTML元素可以内联一样),虽然这不是绝对必需的。
我无法弄清楚如何使这项工作。我已经看到可以添加到textview的唯一方法是使用文本附件,但是那些似乎只降级为图像/文件,而且仅限于NSCell,它不包含(据我所知)任意NSView。
我觉得这应该是可能的,我从哪里开始?
答案 0 :(得分:0)
我知道这个问题发布已经有一段时间了,但是我最近遇到了同样的问题,发现解决方案非常简单。
只需将排除路径附加到NSTextView
的容器中即可,就像在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)