gpt4 book ai didi

objective-c - 更改空间后不显示 NSWindow 翻转动画

转载 作者:行者123 更新时间:2023-12-03 17:55:34 25 4
gpt4 key购买 nike

我有 2 个 NSWindows(均没有标题栏),单击状态栏项目后,它们会显示在状态栏项目的正下方。在第一个 NSWindow 内,我有一个按钮可以启动第二个 NSWindow 的翻转动画,反之亦然。
这是我用来制作翻转动画的代码:

我还有 windowDidResignKey: 方法,因此,当其中一个 NSWindow 失去焦点时,我会关闭该方法内的两个窗口。

那么问题来了:

  • 我点击状态栏项目,第一个 NSWindow 显示
  • 我点击按钮执行翻转动画(翻转动画显示没有任何问题)到第二个窗口
  • 我从当前空间切换到另一个空间(这会触发 windowDidResignKey: 方法)
  • 我再次单击状态栏项目,然后显示第二个 NSWindow
  • 我点击第二个窗口的按钮对第一个窗口执行翻转动画,但动画显示不正确。第二个窗口消失,一两秒内什么也没有出现,第一个窗口出现(动画已执行,只是不可见)
  • 但是如果我进入第一个空间(我第一次执行第一个翻转动画的地方),动画就会正确执行,没有任何错误。

我认为此错误是由以下原因引起的:一个窗口位于一个空间,另一个窗口位于另一个空间(由于 windowDidResignKey: 方法)。
有想法该怎么解决这个吗?我尝试将 NSWindows 更改为“可以加入所有空间”和“移动到事件空间”,但没有成功。

谢谢!

最佳答案

解决了问题,并更新了库。

容器窗口,负责翻转,需要在空间之间移动,并自动移动到事件空间。我只是添加了

[flippingContainerWindow setMovable: YES];
[flippingContainerWindow setMovableByWindowBackground: YES];
[flippingContainerWindow setCollectionBehavior: NSWindowCollectionBehaviorMoveToActiveSpace];

+ (NSWindow *)flippingContainerWindow

关于objective-c - 更改空间后不显示 NSWindow 翻转动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14176647/

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