0

我有一个应用程序目前有这条线:

[myView setWantsLayer:YES];

为了通过 NSBezierPath 绘制一个 GUI 元素。此行是必需的,否则当用户键入相邻(和重叠)的 NSTextField 时,myView的内容会颤抖。

我发现调用 CoreAnimation 会加载 OpenGL 框架,但不会卸载它。看到 这个问题。

我想我可以通过将NSBezierPath绘制到NSImage然后显示 NSImage 来代替 NSBezierPath 来解决这个问题,但是我还没有找到一个单一的来源来告诉我如何去做。


编辑:

我应该注意,我想在显示 NSBezierPath 之前保存它 - 因此将现有视图绘制到 NSImage的解决方案没有用。


问题:

有人可以指出我将 NSBezierPath 转换为 NSImage 的正确方向吗?

4

1 回答 1

3

你可以直接在 NSImage 中绘制任何东西,也可以创建一个空白的 NSImage。因此,创建一个大小为路径边界大小的图像,平移路径使其位于图像的原点,然后将焦点锁定在图像上,绘制路径并解锁焦点。

于 2010-11-08T19:58:49.843 回答