我将如何在 OSX 中编写 HUD 类型覆盖。我希望能够拥有一个应用程序,该应用程序将在不同应用程序窗口的某个点显示文本。
因此,如果(其他应用程序)窗口移动,HUD 部分将保持在其他窗口的相同坐标处。
我将如何在 OSX 中编写 HUD 类型覆盖。我希望能够拥有一个应用程序,该应用程序将在不同应用程序窗口的某个点显示文本。
因此,如果(其他应用程序)窗口移动,HUD 部分将保持在其他窗口的相同坐标处。
对于窗口本身,使用无边框、透明的窗口(大量示例)和您自己的自定义视图,在其中绘制您的叠加元素。
对于“其他应用程序的窗口”部分,没有公共 API 可以让您顺利完成此操作。您使用 Universal Access 及其窗口位置/导航 API,但它要求您的用户打开“启用辅助设备访问”(我认为它仍然无法以编程方式完成)。我不相信当窗户移动时它会“让你知道”,但我可能是错的。如果是这样,它可能是一次性的“这就是我现在所在的位置”,因此您的叠加层可能跟不上。我也不认为它为您提供了“窗口级别”来确保您“高于”任何给定的窗口/工作表/调色板。
唯一的其他选择(与其他应用程序的窗口一起移动)是系统范围的侵入性黑客应用程序增强器(这是相当有争议的)。很容易出错并破坏用户系统的稳定性(因此引起争议)。
您可以使用未记录的 CoreGraphics 函数来跟踪窗口,请参阅http://code.google.com/p/undocumented-goodness/source/browse/trunk/CoreGraphics/CGSPrivate.h