2011-06-23 53 views
1

我对可可开发比较陌生。我正在开发雪豹。我有一个想法,我很好奇,如果API支持它。我一直无法找到它,所以我认为它不可能。但我很高兴被证明是错误的。在Cocoa的其他应用程序中约束窗口位置?

假设我编写的应用程序位于菜单栏正下方的屏幕顶部。窗户浮动,所以它总是在最上面。这可能很烦人,所以我想到的一件事是限制其他窗口(特别是其他应用程序中的窗口),以便它们低于我的应用程序。 API中有什么可以让我这么做吗?为所有窗口指定最大原点(除了我的)?

谢谢。

回答

1

有没有真正支持的方式来做到这一点。您可以使用Accessibility API来实现类似的功能。您必须注意窗口移动的通知,并将窗口推回到可见光区域。

+0

我最终联系了苹果,他们说了同样的事情。使用辅助功能API。对于那些考虑类似问题的人来说,可以在系统偏好设置中禁用Accessibility API,所以这不是一个通用的解决方案。 显然有一种方法可以使用AppleScript来做到这一点,但我还没有对此进行过多的研究。 Accessibility API被推荐为更好的选择。 – user812376

+0

谢谢大家的帮助! – user812376

+0

@ user812376:没问题。关于AppleScript:它可以用来移动窗口,但AFAIK没有实际的方法来观看其他应用程序的窗口,以便知道*何时移动它们。我知道的用于观看其他应用程序窗口的唯一选项是Accessibility和黑客窗口服务器。 – Chuck

0

我不认为你可以这样做,你会发现,基于窗口的用户界面的一个很酷的特性就是你可以在其他桌面上使用Windows来重叠Windows。

现在,您可以做的是始终在顶部窗口,使用NSScreenSaverWindowLevel作为NSWindow级别。你可以做的一个很好的技巧是[窗口setLevel:NSScreenSaverWindowLevel + 1],它设置你的窗口高于屏幕保护程度。

相关问题