在我的程序中,我有一个窗口,用户将其放置在屏幕上他想要拍照的部分上。
然后,当他单击按钮拍照时,我的程序 orderOut
是窗口,截取屏幕截图,然后再次显示该窗口,现在其中包含屏幕截图。
问题是,orderOut
似乎没有立即关闭窗口。所以当我截图时,它通常会截图窗口本身(应该已经关闭),这显然不是我想要的。
我已经能够通过在调用 orderOut
后调用 sleep(1)
来回避这个问题,但肯定有更好的方法吗?
最佳答案
根据文档here 。当您调用 orderOut 时,窗口会执行动画。因此,您可以通过将动画行为设置为 none 来删除 orderOut 动画:
[myWindow setAnimationBehavior:NSWindowAnimationBehaviorNone]
或者使用NSObject方法performSelector:withObject:afterDelay:在一定时间x后执行你的屏幕截图操作。假设 NSWindow orderOut 动画使用默认持续时间,则延迟将为 0.2f。否则,您可以进行一些测试来检查适合您情况的值。
关于objective-c - NSWindow orderOut——有没有办法等待窗口关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12230163/