【问题标题】:Mac OSX OverlayMac OSX 覆盖
【发布时间】:2010-05-07 19:30:05
【问题描述】:

我将如何在 OSX 中编写 HUD 类型的叠加层。 我希望能够拥有一个应用程序,该应用程序将在不同应用程序窗口的某个点显示文本。

因此,如果(其他应用程序)窗口移动,HUD 部分将保持在其他窗口的相同坐标处。

【问题讨论】:

    标签: objective-c cocoa hud


    【解决方案1】:

    对于窗口本身,使用无边框、透明的窗口(大量示例)和您自己的自定义视图,在其中绘制您的叠加元素。

    对于“其他应用程序的窗口”部分,没有公共 API 可以让您顺利完成此操作。您使用 Universal Access 及其窗口位置/导航 API,但它要求您的用户打开“启用辅助设备访问”(我认为它仍然无法以编程方式完成)。我不相信当窗户移动时它会“让你知道”,但我可能是错的。如果是这样,它可能是一次性的“这就是我现在所在的位置”,因此您的叠加层可能跟不上。我也不认为它为您提供“窗口级别”来确保您“高于”任何给定的窗口/工作表/调色板。

    唯一的其他选择(与其他应用程序的窗口一起移动)是系统范围的侵入性黑客应用程序增强器(这是相当有争议的)。很容易出错并破坏用户系统的稳定性(因此引起争议)。

    【讨论】:

    • 注意:我对讨论 Application Enhancer 不感兴趣。至少没有。
    【解决方案2】:

    您可以使用未记录的 CoreGraphics 函数来跟踪窗口,请参阅 http://code.google.com/p/undocumented-goodness/source/browse/trunk/CoreGraphics/CGSPrivate.h

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多