用Quartz画在屏幕上

时间:2010-06-20 22:38:48

标签: cocoa macos quartz-graphics quartz-2d

我正在尝试找出在OS X上绘制屏幕上所有其他项目顶部的最佳方法。我不想阻碍用户与其应用程序交互的能力,但我想'注释'他们。我希望能够绘制多达20种不同的注释。 Gizmodo这个屏幕截图的上半部分很好地显示了我想做的事情的http://gizmodo.com/assets/resources/2006/07/04%20Safari.jpg(抱歉,我太新了,无法将其作为图片张贴)

认为我需要回答的问题是:

  1. 我应该为其创建一个窗口 每个绘图并绘制到那个?如果 那么,我该如何最大限度地减少开销?
  2. 鉴于我不想要任何窗口,我应该使用什么样的窗口或其他上下文 装饰?
  3. 我不认为我想要创建20个窗口的开销,但我也不知道我想要创建一个包含我的上下文的全屏,不可见窗口(我假设一个子类NSView),因为我担心a)会导致问题与下面的内容相互作用,b)打破必要时只重画的细节(我的实际绘图可能只覆盖屏幕的10%)

    我之前没有使用过Quartz2d,所以我无法理解如何从文档中获取“正确”的上下文。任何帮助将不胜感激。

    谢谢,

1 个答案:

答案 0 :(得分:1)

你只能画成一个窗口。你可以制作一个透明的无边框窗口,但它需要在前面。

您可以将其级别设置为NSPopUpMenuWindowLevel以使其在其他窗口上方绘制(这对用户来说非常烦人)但点击它会:

a)激活并将应用程序带到前面

b)防止接收鼠标事件下的应用程序

这就是你想要的吗?