gpt4 book ai didi

objective-c - 我想要为外国 OS X 应用程序窗口的移动设置动画

转载 作者:行者123 更新时间:2023-12-03 18:02:29 25 4
gpt4 key购买 nike

背景:我最近有两个显示器,想要一种将聚焦窗口移动到另一个屏幕的方法,反之亦然。我通过使用 Accessibility API 实现了这一点。 (具体来说,我获得一个 AXUIElementRef,它保存与聚焦窗口关联的 AXUIElement,然后设置 NSAccessibilityPositionAttribute 值来移动窗口。

我的工作几乎完全按照我想要的方式进行,除了我想要为窗口的移动设置动画。我想如果我能以某种方式获取 NSWindow,我就可以获取它的图层并使用 CoreAnimation 来为窗口移动设置动画。

不幸的是,我发现这是不可能的。 (纠正我,但我错了——如果有办法做到这一点那就太好了!)所以我向大家寻求帮助。如果我有权访问 AXUIElementRef,我应该如何为聚焦窗口的移动设置动画?

-R

--编辑

我能够通过创建一个 while 循环并每次移动窗口的位置少量来制作一个成功的动画,从而获得一个粗略的动画。然而,结果却相当低于标准。正如您所猜测的,它需要大量不必要的处理能力,并且仍然非常不稳定。 一定有更好的方法。

最佳答案

我能想到的最好的方法是在窗口的 AXUIElement 信息值和从 CGWindow api 返回的信息之间执行一些 hacky 属性比较。一旦您能够确定 CGWindow API 中的哪些窗口与 AXUIElementRefs 匹配,您就可以抓取当前窗口内容的位图,用您自己的人造窗口的自定义动画绘制覆盖屏幕,然后当您放下覆盖层时,设置真实的 AXUIElementRef到所需的最终动画位置。

哈基,不过。

关于objective-c - 我想要为外国 OS X 应用程序窗口的移动设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4927592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com