我有一个目前有这一行的应用程序:
[myView setWantsLayer:YES];
为了通过NSBezierPath绘制GUI元素。此行是必需的,否则当用户键入相邻(且重叠)的NSTextField时, myView 的内容会发抖。
我发现调用CoreAnimation会加载OpenGL框架,但不会卸载它。 参见 this question.
我想我可以通过将 NSBezierPath 绘制到 NSImage 然后显示NSImage来代替NSBezierPath来解决这个问题,但我还没有找到一个来源告诉我如何解决这个问题。
修改
我应该注意,我想在显示NSBezierPath之前保存它 - 所以draw an existing view to an NSImage没有用的解决方案。
问题:
有人能指出我将NSBezierPath转换为NSImage的正确方向吗?
答案 0 :(得分:3)
您可以直接在NSImage中绘制任何内容,并可以创建一个空白的NSImage。因此,创建一个大小为路径边界大小的图像,转换路径使其位于图像的原点,然后将焦点锁定在图像上,绘制路径并解锁焦点。