【问题标题】:Draw over screen with Quartz使用 Quartz 在屏幕上绘图
【发布时间】:2010-06-20 22:38:47
【问题描述】:

我正在尝试找出在 OS X 屏幕上的所有其他项目之上绘制的最佳方式。我不想妨碍用户与其应用程序交互的能力,但想要'注释'他们。我希望能够绘制多达 20 种不同的注释。 Gizmodo 截屏的上半部分恰好很好地展示了我想做的种类http://gizmodo.com/assets/resources/2006/07/04%20Safari.jpg(对不起,我太新了,无法将其发布为图片)

认为需要回答的问题是:

  1. 我应该为 每幅画和画到什么?如果 那么,如何最大限度地减少开销?
  2. 如果我不想要任何窗口,我应该使用什么样的窗口或其他上下文 装饰?

我不认为我想要创建 20 个窗口的开销,但我也不知道我想创建一个包含我的上下文的全屏、不可见窗口(我假设是一个子类 NSView),因为我担心会 a) 导致与下面的内容交互时出现问题 b) 破坏仅在必要时重绘的细节(我的实际绘图可能只覆盖 10% 的屏幕)

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

谢谢,

【问题讨论】:

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


    【解决方案1】:

    您只能在窗口中绘图。您可以制作一个透明的无边框窗口,但它需要位于前面。

    您可以将其级别设置为 NSPopUpMenuWindowLevel 之类的东西,以使其绘制在其他窗口之上(这对用户来说会很烦人),但点击它会:

    a) 激活并展示您的应用

    b) 阻止下面的应用接收鼠标事件

    这是你想要的吗?

    【讨论】:

    • 我不这么认为,谢谢,因为你说的烦恼!似乎最合适的做法是从没有菜单栏的应用程序等为屏幕上的每个项目创建一个窗口......一些Apple应用程序似乎这样做,所以它不能真是个糟糕的主意:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多