“Cinch App”如何做到这一点?

时间:2011-03-17 06:08:35

标签: objective-c cocoa xcode macos core-graphics

如果您不熟悉Cinch,它是Mac App Store上的一个应用程序,如果您将窗口拖动到屏幕边缘,则允许您将任意窗口的大小调整为半/全屏大小。完全像Windows 7中的功能。

现在我的问题是,它是如何完成的?我已经查看了所有可可apis寻找通知/委托方法,无论何时拖动窗口(所有窗口,而不仅仅是运行代码的应用程序所拥有的窗口),但无法找到它。看看Core Graphics API ... Quartz Display Services ....但找不到它。

任何帮助都将非常感谢,因为我一直在寻找过去一周....谢谢!

编辑:调整窗口大小很简单,因为它可以通过applescript桥完成..

3 个答案:

答案 0 :(得分:7)

您是i-Snap或Cinch的其他Mac App Store克隆的开发人员吗?

我是Cinch背后的开发人员,虽然我试图保持一种“丰富的心态”,基本上说“每个人都有足够的”,但我对Mac App Store感到不安,因此降低了进入的门槛。这个市场已经产生了一些半支持的竞争对手。

我很高兴看到我所做的工作有了一些真正的创新,而不仅仅是想要快速赚钱的克隆人。

无论如何,您要查看辅助功能API。这是一个Carbon C API。这可能是您最好的参考:http://developer.apple.com/library/mac/#samplecode/UIElementInspector/Introduction/Intro.html%23//apple_ref/doc/uid/DTS10000728

答案 1 :(得分:1)

我没有使用Cinch应用程序,但如果我这样做,我希望使用cocoa events。 (另请参阅here)特别是鼠标处理事件,以及鼠标当前在屏幕上的位置。它们可能在抓取窗口时设置变量,然后跟踪鼠标指针,直到它到达边缘或直到它们释放鼠标按钮。

事件非常强大,可以提供对正在发生的事情的非常低级别的访问,但也可能非常复杂。祝你好运!

答案 2 :(得分:0)

我不确定。也许开发人员结合了苹果脚本和碳事件。您可以创建碳事件以了解鼠标何时被单击或拖动