【问题标题】:How does "Cinch App" do it?“Cinch App”是如何做到的?
【发布时间】:2011-03-17 06:08:35
【问题描述】:

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

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

如果我在过去一周一直在寻找任何帮助,我们将不胜感激......谢谢!

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

【问题讨论】:

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


    【解决方案1】:

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

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

    我会很高兴看到围绕我所做工作的一些真正的创新,而不仅仅是为了快速赚钱的克隆。

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

    【讨论】:

    • 同意。我很厌倦看到真正创新的应用程序出现在 MAS 中,然后让其他开发人员复制它们并获得所有荣耀。选择新的东西大声哭泣,并做好它!
    • 谢谢史蒂夫。我不是 i-Snap 的开发者。事实上,我在 App Store 中没有任何应用程序,我刚开始为 Mac 编程。我完全同意你关于开发者涌入应用商店以快速赚钱的立场。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-25
        • 1970-01-01
        • 1970-01-01
        • 2013-02-26
        • 1970-01-01
        • 2011-02-10
        相关资源
        最近更新 更多